A Redis-compatible database built with Rust, using object storage as the backend.
See ROADMAP.md for the detailed development plan and upcoming features.
- Redis-Compatible Commands: Comprehensive support for string, hash, list, set, and sorted set data types. See Commands for the complete list of supported commands and implementation guide.
- Persistence: Data is persisted to SlateDB (object storage compatible).
- Configuration: Dynamic configuration updates.
- Observability: Detailed build and environment information (git hash, branch, rustc version) displayed on startup.
Nimbis is built on the principle of never trading off unless there's a suitable alternative approach.
Nimbis is organized as a Cargo workspace with multiple focused crates:
nimbis-macros- Procedural macros for derive implementations (e.g.,OnlineConfig)nimbis-resp- RESP protocol parser and encodernimbis-storage- Persistent storage layer using SlateDBnimbis-telemetry- Logging and observabilitynimbis- Main server executable, command implementations, and configuration management
For detailed information about the crate organization, see Crates Organization.
- Rust: Latest stable version
- Go: Required for integration tests
- Just: Command runner
Install dependencies:
# Install just
cargo install just
# Install cargo-nextest
cargo install --locked cargo-nextest
# Install cargo-llvm-cov
cargo install cargo-llvm-cov$ just
Available recipes:
[check]
check # Check all crates
[clean]
clean # Clean build artifacts
[misc]
build *args # Build all crates
fmt # Format code
run *args # Run nimbis-server
[test]
bench # Run storage benchmark target
e2e-test # Run e2e tests
redis-bench # Run redis-benchmark through xtask against a running Nimbis server
test # Run unit tests
Hook configuration lives in prek.toml, the TOML configuration file discovered by prek.
The configured local hook runs just check without passing filenames, so it validates the
same workspace checks developers run manually.
# Install the hook runner and Git hook shim.
cargo install --locked prek
prek install
# Verify the configuration and execute the configured hook on the whole repository.
prek run --all-filesFor a quick config-only smoke test, run prek list; this confirms that prek.toml is
discoverable and that the just-check hook is registered without executing just check.