yo
Redis-compatible database in Rust, in one .yo file. Every Redis data structure plus documents, vectors and graphs, with your own language's types in place of a query language. RESP3 on the wire, embedded in six languages.
Status
Early. M0 has landed, which is the workspace, the hash, the allocator, the index bucket, the shard runtime and the CI that keeps them honest. Nothing is stored yet: the record plane and the file are M1 and are in progress. See the milestones for what each one is gated on.
The version is 0.x and it means what it says. A minor release may break the API, the ABI or the on-disk format, and the format is not frozen until M6. What changed in each release is in CHANGELOG.md; the rules are in RELEASING.md.
Benchmark numbers published so far are development measurements taken on a machine that does not meet the gate box definition, and each one says so where it appears. Comparisons against Redis and Valkey start at M2, on a box that qualifies.
Packages
There is nothing to install. Every package below is published at 0.0.1, holds a name, and raises the moment you call anything in it.
| Command | Repository | |
|---|---|---|
| Rust | cargo add yodb |
here |
| Python | pip install yodb |
yo-python |
| Node | npm i @yodb/core |
yo-node |
| Go | go get github.com/tamnd/yo-go |
yo-go |
| Java | com.tamnd:yodb |
yo-java |
| .NET | dotnet add package Yodb |
yo-dotnet |
| Swift | .package(url: "https://github.com/tamnd/yo-swift", from: "0.0.1") |
yo-swift |
| Dart | dart pub add yodb |
yo-dart |
| C, C++ | nothing published; the library ships as libyo |
yo-c |
The command is yodb and not yo, because yo on PATH belongs to Yeoman. Only the executable and the environment variables take that prefix. The C library stays libyo, the header stays yo.h, the symbols stay yo_* and the file extension stays .yo.
npm is the one place the name is not plain yodb: npm refused the unscoped name under its similarity filter, so the package is @yodb/core. Every other registry is yodb.
Each of these was installed on a machine that had never seen it before this table was written, rather than being copied out of a build script.