SubZero - a standalone web server that turns your database directly into a REST/GraphQL api

Overview

What is this?

This is a demo repository for the new subzero codebase implemented in Rust.

subZero is a standalone web server that turns your database directly into a REST/GraphQL api.

You can use it as precompiled binary (or docker image) where the constraints and permissions in the database determine the api endpoints and operations or you can use it as a library dependence in your Rust code to bootstrap 90% of your backend while having the complete freedome to implement the remaining bits yourself.

Strengths compared to alternatives

  • Implemented in Rust — a modern and powerful language love by developers
  • Use it as a library/dependency to build custom solutions
  • 2x-8x times faster
  • 50%-70% less memory usage

Roadmap

  • Core functions/types
  • PostgreSQL backend
  • SQLite backend
  • REST frontend (PostgREST compatible)
  • Production ready code
  • Stable library interface
  • Clickhouse backend
  • GraphQL frontend (Hasura/Postgraphile)

Try it

Bring up the docker services

docker-compose up -d

You can interact with the database at the following endpoints

  • Interact with the PostgreSQL database (subzero-postgresql) - http://localhost:8000/
  • Interact with the SQLite database (subzero-sqlite) - http://localhost:9000/

Note that this will pull in prebuilt public docker images and not actually compile the code in this repository.

The REST API uses PostgREST dialect/conventions.

PostgreSQL backend sample request.

curl -i "http://localhost:8000/projects?select=id,name&id=gt.1"

SQLite backend sample request.

curl -i "http://localhost:9000/projects?select=id,name&id=gt.1"

Source code

While in beta, you can get a license and access instantly (and compile the code in this repository) by selecting the Beta Tester sponsor tier or contact us and we'll give you access manually (in about 1 day).

License

A general overview of the standard commercial license is:

You can

  • Use the binary distribution for commercial or non-commercial purposes without charge
  • Use the source distribution to develop a SaaS product (subject to charges)
  • Use the source distribution to develop software that is distributed to clients in binary form (subject to charges).

You can not

  • Distribute/publish the source code
  • Develop services/software that directly competes with subzero
  • Study the code to create competing products
You might also like...
Standalone Northstar RCON client.

Northstar RCON Client This is a small, cross-platform implementation of an RCON client for the Northstar mod, as it's implemented in the RCON PR. Ther

A scalable, distributed, collaborative, document-graph database, for the realtime web
A scalable, distributed, collaborative, document-graph database, for the realtime web

is the ultimate cloud database for tomorrow's applications Develop easier. Build faster. Scale quicker. What is SurrealDB? SurrealDB is an end-to-end

An explorer for the DeArrow database as a web application. Inspired by Lartza's SBrowser

DeArrow Browser An explorer for the DeArrow database as a web application. Inspired by Lartza's SBbrowser. Public instance available at dearrow.minibo

FeOphant - A SQL database server written in Rust and inspired by PostreSQL.

A PostgreSQL inspired SQL database written in Rust.

rust_arango enables you to connect with ArangoDB server, access to database, execute AQL query, manage ArangoDB in an easy and intuitive way, both async and plain synchronous code with any HTTP ecosystem you love.

rust_arango enables you to connect with ArangoDB server, access to database, execute AQL query, manage ArangoDB in an easy and intuitive way, both async and plain synchronous code with any HTTP ecosystem you love.

Visualize your database schema

dbviz Visualize your database schema. The tool loads database schema and draws it as a graph. Usage $ dbviz -d database_name | dot -Tpng schema.png

Seed your development database with real data ⚡️
Seed your development database with real data ⚡️

Seed Your Development Database With Real Data ⚡️ Replibyte is a blazingly fast tool to seed your databases with your production data while keeping sen

Grsql is a great tool to allow you set up your remote sqlite database as service and CRUD(create/read/update/delete) it using gRPC.

Grsql is a great tool to allow you set up your remote sqlite database as service and CRUD (create/ read/ update/ delete) it using gRPC. Why Create Thi

Teach your PostgreSQL database how to speak MongoDB Wire Protocol
Teach your PostgreSQL database how to speak MongoDB Wire Protocol

“If it looks like MongoDB, swims like MongoDB, and quacks like MongoDB, then it probably is PostgreSQL.” 🙃 Discord | Online Demo | Intro Video | Quic

Comments
  • Source code

    Source code

    Hi teams,

    I followed the instructions to get the source code for this project. So I wonder what will be the next step to get the source code. We are considering using a solution of this type for our infrastructure, only for security reasons we must have a reading of the software.

    Thanks for your help.

    opened by MBoui 1
Owner
subZero
GraphQL & REST API for your database
subZero
tectonicdb is a fast, highly compressed standalone database and streaming protocol for order book ticks.

tectonicdb crate docs.rs crate.io tectonicdb tdb-core tdb-server-core tdb-cli tectonicdb is a fast, highly compressed standalone database and streamin

Ricky Han 525 Dec 23, 2022
A Rust-based comment server using SQLite and an intuitive REST API.

soudan A Rust-based comment server using SQLite and an intuitive REST API. Soudan is built with simplicity and static sites in mind. CLI usage See sou

Elnu 0 Dec 19, 2022
📺 Netflix in Rust/ React-TS/ NextJS, Actix-Web, Async Apollo-GraphQl, Cassandra/ ScyllaDB, Async SQLx, Kafka, Redis, Tokio, Actix, Elasticsearch, Influxdb Iox, Tensorflow, AWS

Fullstack Movie Streaming Platform ?? Netflix in RUST/ NextJS, Actix-Web, Async Apollo-GraphQl, Cassandra/ ScyllaDB, Async SQLx, Spark, Kafka, Redis,

null 34 Apr 17, 2023
This crate allows you to send cypher queries to the REST endpoint of a neo4j database

rusted_cypher Rust crate for accessing the cypher endpoint of a neo4j server This crate allows you to send cypher queries to the REST endpoint of a ne

Livio Ribeiro 68 Dec 1, 2022
High performance and distributed KV store w/ REST API. 🦀

About Lucid KV High performance and distributed KV store w/ REST API. ?? Introduction Lucid is an high performance, secure and distributed key-value s

Lucid ᵏᵛ 306 Dec 28, 2022
A Rust client for the ElasticSearch REST API

rs-es Introduction An ElasticSearch client for Rust via the REST API. Targetting ElasticSearch 2.0 and higher. Other clients For later versions of Ela

Ben Ashford 218 Dec 27, 2022
An Elasticsearch REST API client for Rust

elastic elastic is an efficient, modular API client for Elasticsearch written in Rust. The API is targeting the Elastic Stack 7.x. elastic provides st

null 249 Oct 18, 2022
The most efficient, scalable, and fast production-ready serverless REST API backend which provides CRUD operations for a MongoDB collection

Optimal CRUD Mongo Goals of This Project This is meant to be the most efficient, scalable, and fast production-ready serverless REST API backend which

Evaluates2 1 Feb 22, 2022
🦀 REST API client implementation for freee, auto-generated from OpenAPI specification.

freee-rs REST API client implementation for freee, auto-generated from OpenAPI specification. Getting Started Add to your Cargo.toml as follows: [depe

Naoki Ikeguchi 3 Jul 14, 2022
🐸Slippi DB ingests Slippi replays and puts the data into a SQLite database for easier parsing.

The primary goal of this project is to make it easier to analyze large amounts of Slippi data. Its end goal is to create something similar to Ballchasing.com but for Melee.

Max Timkovich 20 Jan 2, 2023