Shelf
The GraphQL database. Makes storing data easy!
DISCLAIMER: This project is currently in ALPHA
About
Shelf is a database written in rust and that uses GraphQL for it's api and migrations. Graphql makes it easy to describe the data resources you want to fetch. Shelf expands that power to simple let ypu describe your data and then have the persistence automatically generated for you
However what makes this database even more powerful is the ecosystem surrounding GraphQL. You dont need any specific client to access this database. All you have to do is take the GraphQL Schema and use you favourite tool to generate the client for you. You can use JavaScript, TypeScript, Java, C#, Rust, Go and probably most other languages that are out there!
The GraphQL api is compatible with both the Apollo standard and Facebooks Relay specification. Most list resources are paginated using cursor based pagination
Installation
Helm
The easiest way to add Shelfdb to you cluster is by using our helm script. Assuming you have helm installed (How to install), you can run the following command
helm install --repo https://shelfdb.netlify.com shelfdb
Docker Compose
You can also run Shelfdb locally using the docker compose file below. Really nice for some local experimentation
version: '3'
services:
shelfdb:
image: "joatin/shelfdb:latest"
ports:
- "5600:5600"
Roadmap
- Disk File Store
- GraphQL Resource Specifications
- Working GraphQL API
- GraphQL Migration Support
- S3 File Store
- GraphQL Subscriptions
- Clustering
Contributing
See our Contribution Guidelines
License
See LICENSE