Skytable is a modern scalable NoSQL database with BlueQL, designed for performance, scalability and flexibility. Skytable gives you spaces, models, data types, complex collections and more to build powerful experiences
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Sayan d156347bc4
Re-implement network stack (#279)
* Re-implement network stack

This commit does a complete overhaul to the networking subsystem, and this has
been pending for a long time. For whatever reason, when some generic
flexibility was aimed for, we went ahead with the "expensive emulation" of
async traits which has resulted in unnecessary complication with type arguments
(lifetimes, function signatures looking insane et cetera) besides the usual
downsides.

Also, the termination signaling mechanism was slightly excessive because it was
built with the idea of supporting PUB/SUB by default.

Last but not the least, the authentication system used dynamism which had
resulted in unwanted complication to type arguments for functions that accepted
the auth handle. Now, none of those complications exist and we have an almost
glorious life (for now atleast).

* Fix simple query header for Skyhash-1.0
2 years ago
.cargo Add authn tests 3 years ago
.github Remove PID file just before exit 3 years ago
assets Rebrand from TerrabaseDB to Skybase (#90) 4 years ago
ci Use separate flag for tree cleanup 3 years ago
cli Upgrade deps 2 years ago
examples/config-files Ensure TLS-only mode in prod when authn is enabled 3 years ago
harness Bump deps 2 years ago
libsky Upgrade deps and bump version 2 years ago
libstress Merge branch 'newbench' into next 2 years ago
pkg Automatically package Debian packages on release (#235) 3 years ago
scripts Use deterministic finite automaton for validation 3 years ago
server Re-implement network stack (#279) 2 years ago
sky-bench Wait for threads to start up before returning 2 years ago
sky-macros Upgrade deps 2 years ago
sky-migrate Simplify imports 2 years ago
stress-test Wait for threads to start up before returning 2 years ago
.build.yml Fix CI script and resolve artifact name conflict 3 years ago
.ci.yml Upgrade deps and ignore tree test on M1 builder 2 years ago
.dockerignore Don't ignore `skysh` for Docker image build 2 years ago
.gitignore Add persist tests for keyspace creation/deletion 3 years ago
AUTHORS.md Enable string escaping with quotes for skysh 4 years ago
CHANGELOG.md Merge branch 'newbench' into next 2 years ago
CODEOWNERS Update CODEOWNERS 3 years ago
CODE_OF_CONDUCT.md Improve community documentation 4 years ago
CONTRIBUTING.md Update docs [skip ci] 3 years ago
CONTRIBUTORS.md Improve docs 4 years ago
Cargo.lock Re-implement benchmark tool 2 years ago
Cargo.toml Bump version to 0.7.4 3 years ago
Dockerfile add skysh to dockerfile 2 years ago
LICENSE Formal terrapipe query parsing 4 years ago
Makefile Guard against allocation errors in `libstress` 2 years ago
README.md Revert #217 2 years ago
SECURITY.md Revoke old public security key 3 years ago
actiondoc.yml Add `sys metric storage` for checking on-disk storage usage 3 years ago
pushrelease.sh Improve workflow and docs 4 years ago
release.sh Bump up version, add changelog and update scripts (#159) 3 years ago

README.md

<html>

Skytable

Your next NoSQL database

GitHub Workflow Status Development GitHub release (latest SemVer including pre-releases) Docs Contribute Now Discord

</html>

What is Skytable?

Skytable is a free and open-source NoSQL database that aims to provide flexible data modeling at scale. For us simplicity, performance and flexibility are our guiding design principles. We were previously known as TerrabaseDB or Skybase and are nicknamed Sky, SDB or STable by the community.

Features like keyspaces, tables, data types, authn+authz, snapshots and more are ready for you to use while we're working on several new data models and features. Skytable's key/value store is performant, secure and ready for you to deploy.

Getting started 🚀

  1. Download a bundle for your platform from here ⬇️
  2. Unzip the bundle
  3. Make the files executable (run chmod +x skyd skysh on *nix systems)
  4. First run skyd to start the database server and then run skysh to start the interactive shell
  5. Run commands like: SET foo bar , GET bar , UPDATE cat mitten or DEL proprietary on skysh!

You can learn more about installation here

Features

  • Insanely fast: Scale to millions of queries per second per node. See benchmarks here.
  • Multiple keyspaces/tables: Seamlessly integrates with actions to provide a SQL-like experience
  • Key/value store: GET , SET , UPDATE and all that stuff. With the str and binstr types.
  • Authn/Authz: Simple and secure authentication/authorization
  • Volatile tables: For all the caching you need
  • Snapshots: Automated (and tunable) snapshots for stress-free backups
  • Secure: Secure connections are built into Skytable with SSL/TLS
  • Multithreaded: Designed to exploit all CPU cores
  • Resource friendly: The database server doesn't need more than 1MB to run
  • Convenient: Without the setup hassle and system-specific dependencies

🛣️ There's a lot more coming! View our roadmap

Clients 🔌

The project currently maintains an official Rust driver and we have plans to support more languages along the way! We also maintain a list of community supported drivers here.

If you want to use a different language, for now you'll just need to implement the simple and performant Skyhash Protocol.

Community 👐

A project which is powered by the community believes in the power of community! If you get stuck anywhere - here are your options!

<html> </html>

Platforms 💻

Linux supported macOS supported Windows supported

Versioning

This project strictly follows semver, however, since this project is currently in the development phase (0.x.y), the API may change unpredictably

Contributing

Contribute Now

You are welcome to contribute to Skytable! Beginner friendly issues are marked with the label. Read the guide here.

Contributors

You can see a full list of contributors here

License

This project is licensed under the AGPL-3.0 License.