Orbit is distributed on npm through the @orbit organization in several packages. This API reference is organized according to these packages.
Orbit consists of the following core libraries:
@orbit/core - A core set of primitives for performing, tracking, and responding to asynchronous tasks, including:
An event system that allows listeners to engage with the fulfillment of events by returning promises.
An asynchronous task processing queue.
A log that tracks a history of changes and allows for revision and interrogation.
A bucket interface for persisting state. Used by logs and queues.
@orbit/data - Applies the core Orbit primitives to data sources. Includes the following:
RecordSource- a base class that extends
RecordSchema- define models, including attributes and relationships.
Operations that are specific to records (e.g.
Query expressions that are specific to records (e.g.
Tranform and query builders that use chainable terms to create operations and expressions.
@orbit/record-cache - Everything you need to build your own caches that hold data records (useful within record-specific sources).
@orbit/coordinator - A coordinator and set of coordination strategies for managing data flow and keeping Orbit Data sources in sync.
@orbit/serializers - A base set of serializers for serializing / deserializing data types.
@orbit/validators - A set of validators for validating primitive data and utilities for building higher order validators.
@orbit/identity-map - A simple identity map to manage model instances.
@orbit/immutable - A lightweight library of immutable data structures.
@orbit/utils - A common set of utility functions used by Orbit libs.
All of the following sources are based on @orbit/records. They provide uniform interfaces to query and mutate record-specific data:
@orbit/memory - An in-memory data source that supports complex querying and updating. Because memory sources maintain data in immutable data structures, they can be efficiently forked. Forked memory sources can diverge from the master memory source, and then the changes can be merged later.
@orbit/local-storage - Persists records to local storage.
@orbit/indexeddb - Persists records to IndexedDB.
These standard sources can provide guidance for building your own custom sources as well.
Buckets are used to persist application state, such as queued requests and change logs. Standard buckets include:
@orbit/local-storage-bucket - Persists state to local storage.
@orbit/indexeddb-bucket - Persists state to IndexedDB.
Some additional libraries related to Orbit, but not covered by these docs, include:
- ember-orbit - An Ember.js data layer heavily inspired by Ember Data.