Skip to content

caseywebdev/pave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pave

Paving the way to better state management.

Why?

Pave is a data layer inspired by Relay, GraphQL, Falcor and Om (next). Pave attempts to take the best pieces of each (subjectively) and expose a simple API that makes managing app state much easier.

Goals

  • Performance
    The core of any data layer will have many hot paths and should run efficiently.

  • Flexible Schema
    There is no requirement that your data is strictly typed, but you can add constraints on inputs and outputs as you see fit.

  • POJO
    All data is represented as JSON-friendly Plain Ol' JavaScript Objects so there is no need to worry about how to serialize X and how to deserialize Y. There are no classes in Pave.

  • Multiple Remotes
    Create a client side schema to use Pave with an existing REST API, implement a Pave schema on the server or mix and match. Allowing multiple remotes both on the client and server makes integrating Pave into an existing project manageable.

  • Immutable
    The cache accepts updates without mutating previous states. This makes history tracking trivial and prohibits unexpected mutations.

  • Small
    pave
    pave

    graphql
    pave

    falcor
    pave

    react-relay
    pave

    @apollo/client
    pave

Install

npm install pave

About

Paving the way to better state management.

Resources

License

Stars

Watchers

Forks

Packages

No packages published