NoSQL data store compatible with Apache Cassandra and Amazon DynamoDB
ssdb is a fork of ScyllaDB OSS. This repository currently contains
inherited ScyllaDB-derived C++ code and documentation while the project builds a
path toward cleanly authored Apache-2.0 Rust components.
The inherited database remains API-compatible with Apache Cassandra and includes
the existing DynamoDB-compatible Alternator code path. During the transition,
internal build targets, binary names, service paths, docs, and package metadata
may still use Scylla or ScyllaDB names.
ssdb uses a mixed dual-license model. Inherited ScyllaDB-derived code
remains AGPL-3.0-or-later. Cleanly authored ssdb rewrite code may be
Apache-2.0 when it follows the provenance rules in
docs/relicensing/clean-room-guidelines.md.
The combined distributable remains AGPL-governed while inherited AGPL code is
part of the shipped work.
The inherited C++ database build is fairly fussy about its build environment,
requiring very recent versions of the C++23 compiler and of many libraries to
build. The document
HACKING.md includes detailed information on building and
developing the inherited code. The
frozen toolchain provides a pre-configured Docker
image with recent compilers, libraries, and build tools.
The current inherited binary target is still named scylla:
$ git submodule update --init --force --recursive
$ ./tools/toolchain/dbuild ./configure.py
$ ./tools/toolchain/dbuild ninja build/release/scylla
For further information, please see:
To start the inherited database server, run:
$ ./tools/toolchain/dbuild ./build/release/scylla --workdir tmp --smp 1 --developer-mode 1
This starts one node with one CPU core and stores data files in tmp. The
--developer-mode flag disables startup checks that are not relevant on
development workstations. Use dbuild to run binaries built with the frozen
toolchain.
For more run options, run:
$ ./tools/toolchain/dbuild ./build/release/scylla --help
See test.py manual.
The inherited database is compatible with Apache Cassandra and its CQL API.
There is also inherited support for a DynamoDB-compatible API, which must be
enabled and configured before use. See Alternator
and Getting started with Alternator.
Inherited developer documentation can be found here.
Seastar documentation can be found here.
The restored documentation tree is retained as reference material until each
page is audited, rewritten, or removed.
See LICENSE, LICENSE.AGPL, and
LICENSE.APACHE.
Before contributing, read the contribution guidelines. For inherited C++
development details, read the developer guidelines.