EmberData is a lightweight data library for web apps —
universal, typed, reactive, and ready to scale.
[!TIP] EmberData is going universal and rebranding as WarpDrive with support for any signals based reactive framework!
This means you may already see some references to WarpDrive.
EmberData provides features that make it easy to build scalable, fast, feature rich application — letting you ship better experiences more quickly without re-architecting your app or API. EmberData is:
- ⚡️ Committed to Best-In-Class Performance
- 💚 Typed
- ⚛️ Works with any API
- 🌲 Focused on being as tiny as possible
- 🚀 SSR Ready
- 🔜 Seamless reactivity in any framework
- 🐹 Built with
♥️ by Ember
Tagged Releases
- Getting Started
- Learn
- Get Involved
Install using your javascript package manager of choice. For instance with pnpm
pnpm add ember-data
ember-data
is installed by default for new applications generated with ember-cli
. You can check what version is installed by looking in the devDependencies
hash of your project's package.json file.
If you have generated a new Ember
application using ember-cli
but do
not wish to use ember-data
, remove ember-data
from your project's package.json
file and run your package manager's install command to update your lockfile.
EmberData is organized into primitives that compose together via public APIs. These primitives are organized into small packages encapsulating these boundaries. These packages declare peer-dependencies (sometimes optional peer dependencies) on the other EmberData/WarpDrive packages they require use of.
-
@ember-data/request provides managed
fetch
- @ember-data/request-utils provides optional utilities for managing requests and string manipulation
- @ember-data/store provides core functionality around coordinating caching and reactivity
- @ember-data/tracking enables integration with Ember's reactivity system
- @ember-data/json-api provides a cache for data in the {JSON:API} format.
-
@ember-data/debug provides (optional) debugging support for the
ember-inspector
. - @warp-drive/build-config provides a build plugin which ensures proper settings configuration for deprecations, optional features, development/testing support and debug logging.
- @warp-drive/core-types provides core types and symbols used by all other packages
- @warp-drive/schema-record provides a flexible, schema-based approach to reactive data.
- @warp-drive/ember provides Ember specific components and utilities for reactive control-flow and declarative state management.
Some EmberData APIs are older than others, and these still interop via well-defined public API boundaries but are no longer the ideal approach.
- @ember-data/model provides a class-based approach to declaring schemas for reactive data.
- @ember-data/legacy-compat provides support for the older adapter/serializer request paradigm that is being phased out
-
@ember-data/adapter provides various network API integrations for APIs built over specific REST or
{JSON:API}
conventions. -
@ember-data/serializer provides an approach to normalizing and serializing data to and from an API format into the
{JSON:API}
format.
And finally:
- ember-data is a "meta" package which bundles many of these together for convenience in a "legacy" configuration.
This project is licensed under the MIT License.