<p align="center">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://github.com/Akryum/rstore/blob/main/img/LogoTextHorizontalWhite.png?raw=true" width="400px" height="122px">
    <source media="(prefers-color-scheme: light)" srcset="https://github.com/Akryum/rstore/blob/main/img/LogoTextHorizontalBlack.png?raw=true" width="400px" height="122px">
    <img alt="rstore logo" src="https://github.com/Akryum/rstore/blob/main/img/LogoTextHorizontalBlack.png?raw=true" width="400px" height="122px">
  </picture>
</p>

---

<p align="center">
  <a href="https://rstore.akryum.dev">Documentation</a> |
  <a href="https://nightly.akryum.dev/Akryum/rstore">Nightly releases</a> |
  <!-- <a href="https://rstore-playground.pages.dev">Demo</a> | -->
  <a href="./CONTRIBUTING.md">Contributing guide</a>
</p>

<p align="center">
  <a href="https://github.com/Akryum/rstore/actions/workflows/ci.yml">
    <img src="https://github.com/Akryum/rstore/actions/workflows/ci.yml/badge.svg" alt="ci">
  </a>
</p>

rstore is a data store allowing you to handle all data in your application.

Define a data model and then run queries or execute mutations (create, update and delete) on your data.

**FEATURES**

- **Normalized reactive cache** to ensure all components are up-to-date
- **Co-locate queries** within the components that need them
- **Fully adaptable** with plugins to fetch from any source (REST, GraphQL...)
- **Scale down** to small prototypes and **scale up** to big enterprise apps
- Query API designed for **local-first** and **realtime**
- **Form API** to handle form state and validation
- **TypeScript support** with full autocomplete
- **Nuxt module** with devtools

![Devtools screenshot](./docs/guide/img/nuxt-devtools2.png)

<p align="center">
  <span>Backed by</span>
  <br>
  <a href="https://directus.io">
    <img src="https://github.com/Akryum/rstore/blob/main/img/directus-logo-stacked.png?raw=true" alt="Directus" width="100px" height="100px">
  </a>
</p>
