Skip to content

gburd/dynomite

Repository files navigation

Dynomite (Rust)

A Rust port of Netflix Dynomite, the thin distributed replication layer for Redis and Memcached datastores inspired by the Amazon Dynamo paper.

This project is a from-scratch Rust implementation that aims to be functionally identical to the original C codebase while being usable both as:

  • a standalone server binary (dynomited), and
  • a library crate (dynomite) that can be embedded directly in another Rust program through a stable, documented API.

Network communication between Dynomite nodes can run over TCP (default, matching the original) or QUIC (via the quiche crate). Both transports support IPv4 and IPv6.

Status

This is an in-progress port. See PLAN.md for the staged roadmap and docs/parity.md for the live C-to-Rust mapping. AGENTS.md is the operating manual for contributors (human or automated).

Quick start

nix develop
cargo build --workspace
cargo nextest run --workspace

The Nix flake pins every tool needed to build, test, fuzz, bench, and package the project.

For a ten-minute walk-through that takes a fresh checkout to a running search stack with vector, text, and regex queries over redis-cli, see docs/book/src/tutorial-search.md.

Acknowledgements

This Rust implementation is a port of the original Dynomite project by Netflix, Inc., which itself extended Twitter's twemproxy. Both projects are licensed under the Apache License 2.0; their notices are preserved in NOTICE.

License

Apache License 2.0. See LICENSE.

About

Dynomite is a thin, distributed dynamo layer for different storage engines and protocols. Currently these include Redis and Memcached. Dynomite supports multi-datacenter replication and is designed for high availability. (mirror of: codeberg.org/gregburd/dynomite)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors