Thank you for considering contributing to Prithvi – a custom in-memory key-value database with deep system design!
We welcome contributions of all kinds – features, bug fixes, documentation, or ideas. Follow this guide to get started quickly and contribute effectively.
-
Clone the repository:
git clone https://github.com/psidh/prithvi.git cd prithvi -
Build and run:
chmod +x run.sh ./run.sh
-
(Optional) Install JS or Python SDK:
- Check out:
prithvi-js-sdk - Check out:
prithvi-py-sdk
- Check out:
We follow Trunk-Based Development to maintain a stable and fast-moving mainline.
- All changes go through pull requests (PRs).
- Work on short-lived branches off
main:feature/xyz,bugfix/login-issue, etc. - Regularly pull updates from
main. - Once your feature is ready, push and open a PR.
Direct pushes to
mainare NOT allowed.
To ensure code quality and stability:
-
Pull Requests must:
- Be reviewed by at least 1 maintainer
- Pass all status checks (e.g., tests/build)
- Be squash merged (linear history only)
- Java: Follow standard Java conventions.
- Write clean, readable, and modular code.
- Follow camelcase for variable names
- Use interfaces to enforce DRY principle
Use
synchronizedwisely and write thread-safe code for core data paths.
Use meaningful commit messages:
feat: Add RPUSH command for list support
fix: Prevent null pointer on KEYS
refactor: Extract cache eviction logicSquash commits before merging for a clean history.
- Add tests where applicable.
- Manual testing is encouraged for concurrency and TTL behavior.
- Log outputs should be clear and concise.
Prithvi is designed to be:
- Minimal yet powerful
- Transparent and easy to extend
- Resilient under concurrent load
Follow existing patterns unless there's a good reason not to.
Open an issue or ping us on X/Twitter. We're happy to support contributors.