thanks for your interest in contributing to ember. this document covers the development workflow and standards we follow.
# clone the repo
git clone https://github.com/kacy/ember
cd ember
# build and test
make check-
create a branch from
mainfor your work- use descriptive names:
feat/add-pubsub,fix/memory-leak,docs/api-examples
- use descriptive names:
-
make changes following the code standards below
-
run checks before committing:
make check # runs fmt, clippy, and tests -
commit with clear messages:
- use lowercase, present tense:
add pubsub support,fix memory tracking bug - keep commits atomic and focused
- use lowercase, present tense:
-
open a pull request against
main- include a summary of changes
- describe what was tested
- note any design considerations
- run
cargo fmtbefore committing - run
cargo clippywith warnings as errors - no
unwrap()in library code — use proper error handling - no
unsafewithout a comment explaining why
- every public item needs a doc comment
- include examples for complex apis
- document panic conditions and performance characteristics
- add tests for new functionality
- focus on edge cases and error paths
- run the full test suite before submitting
crates/
├── ember-server/ # main server binary
├── ember-core/ # sharded engine and data structures
├── ember-protocol/ # resp3 parsing and commands
├── ember-persistence/# aof and snapshots
├── ember-cluster/ # distributed clustering (raft, gossip, slots)
└── ember-cli/ # command-line client
open an issue or start a discussion — we're happy to help.