Contributing
We develop in the open. This page is the public mirror of
CONTRIBUTING.md
in the engine repo.
TL;DR
- Read the RFCs —
docs/rfc/. They are the canonical source of design decisions on the storage engine, query engine, and surrounding subsystems. - Open issues to discuss before sending large PRs.
- Small PRs are welcome any time — typo fixes, docs improvements, perf tweaks, test additions.
Workflow
mainis the development branch. Releases are tagged.- Every PR runs
cargo fmt --check,cargo clippy --workspace --all-targets -- -D warnings, andcargo test --workspace. - Commits should be signed (
git commit -S). - PR titles follow Conventional Commits:
feat:,fix:,docs:,refactor:,test:,bench:,chore:.
Coding standards
- Rust edition 2021, MSRV 1.85 (kept current).
unsafeonly in hot paths with documented invariants and// SAFETY:comments.- All public APIs documented (
cargo doc --workspace --no-depsmust succeed). - Errors via
thiserror; avoidanyhowin library crates (OK in binaries / tests). - Tracing instrumentation on
pubasync functions (#[tracing::instrument]). - Tests live next to code (
#[cfg(test)] mod tests) for unit; integration tests in the crate’stests/directory.
Testing
- Property tests with
proptestfor invariants. - Loom for concurrency-critical code paths where appropriate.
- Local integration with an S3-compatible endpoint via
docker compose -f tests/docker-compose.s3.yml up(LocalStack). - Benchmarks with
criterion; results expected to be reproducible.
Communication
- Email:
hello@namidb.com - Security:
security@namidb.com - GitHub Issues: github.com/namidb/namidb/issues