ember-data
Version:
The lightweight reactive data library for JavaScript applications
125 lines (100 loc) • 6.29 kB
Markdown
<p align="center">
<img
class="project-logo"
src="./logos/ember-data-logo-light.svg#gh-light-mode-only"
alt="EmberData"
width="240px"
title="EmberData"
/>
<img
class="project-logo"
src="./logos/ember-data-logo-dark.svg#gh-dark-mode-only"
alt="EmberData"
width="240px"
title="EmberData"
/>
</p>
<p align="center">
<br>
<a href="https://warp-drive.io">EmberData</a> is a lightweight data library for web apps —
<br>
universal, typed, reactive, and ready to scale.
<br/><br/>
<p>



[](https://api.emberjs.com/ember-data/release)
[](https://discord.gg/zT3asNS
)
---
> [!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](https://emberjs.com)
**Tagged Releases**
- 
- 
- 
- 
- 
## Quick Links
- Getting Started
- [Basic Installation](#basic-installation)
- [Advanced Installation](#advanced-installation)
- [Configuration](https://github.com/emberjs/data/blob/main/packages/build-config/README.md)
- Learn
- [API Documentation](https://api.emberjs.com/ember-data/release)
- [New Guides (🚧 WIP)](https://github.com/emberjs/data/blob/main/guides/index.md)
- [Community Resources](https://github.com/emberjs/data/blob/main/guides/community-resources.md)
- [Ember Usage Guide](https://guides.emberjs.com/release/models/)
- [Ember Tutorial](https://guides.emberjs.com/release/tutorial/part-1/)
- Get Involved
- [Discord Community](https://discord.com/invite/emberjs)
- [Community & Help](https://emberjs.com/community)
- [Contributing](https://github.com/emberjs/data/blob/main/CONTRIBUTING.md)
- [RFCs](https://github.com/emberjs/rfcs/labels/T-ember-data)
- [Team](https://emberjs.com/team)
- [Blog](https://emberjs.com/blog)
## Basic Installation
Install using your javascript package manager of choice. For instance with [pnpm](https://pnpm.io/)
```no-highlight
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](https://docs.npmjs.com/cli/v8/configuring-npm/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.
## Advanced Installation
*Ember***Data** 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 *Ember***Data**/*Warp***Drive** packages they require use of.
- [@ember-data/request](../packages/request) provides managed `fetch`
- [@ember-data/request-utils](../packages/request-utils) provides optional utilities for managing requests and string manipulation
- [@ember-data/store](../packages/store) provides core functionality around coordinating caching and reactivity
- [@ember-data/json-api](../packages/json-api) provides a cache for data in the [{JSON:API}](https://jsonapi.org) format.
- [@ember-data/debug](../packages/debug) provides (optional) debugging support for the `ember-inspector`.
- [@warp-drive/build-config](../packages/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](../packages/core-types) provides core types and symbols used by all other packages
- [@warp-drive/schema-record](../packages/schema-record) provides a flexible, schema-based approach to reactive data.
- [@warp-drive/ember](../packages/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](../packages/model) provides a class-based approach to declaring schemas for reactive data.
- [@ember-data/legacy-compat](../packages/legacy-compat) provides support for the older adapter/serializer request paradigm that is being phased out
- [@ember-data/adapter](../packages/adapter) provides various network API integrations for APIs built over specific REST or `{JSON:API}` conventions.
- [@ember-data/serializer](../packages/serializer) provides an approach to normalizing and serializing data to and from an API format into the `{JSON:API}` format.
And finally:
- [ember-data](./packages/-ember-data) is a "meta" package which bundles many of these together for convenience in a "legacy" configuration.
### License
This project is licensed under the [MIT License](LICENSE.md).