Thanks for your interest in contributing to Shimmy!
- Fork the repo and create a branch (
git checkout -b feature/foo) - Make your changes with clear commits and tests if applicable
- Run existing tests to ensure nothing breaks (
cargo test) - Ensure code quality (
cargo fmt && cargo clippy) - Open a Pull Request against
main
- Rust 2021 edition
- Use
cargo fmtandcargo clippybefore submitting - Keep PRs small and focused - large refactors may be rejected
- Add tests for new functionality
- Document public APIs with rustdoc comments
Features should align with the Shimmy philosophy:
- Lightweight: ~5MB binary target
- Zero-config: No setup, just works
- OpenAI API compatibility: Drop-in replacement
- Invisible infrastructure: Minimal surface area
- Bug fixes with test cases
- Performance improvements
- API compatibility enhancements
- Documentation improvements
- Platform-specific fixes
- Test coverage improvements
- Features that bloat binary size significantly
- Complex configuration systems
- UI/dashboard components (use external tools)
- Breaking changes to established APIs
- Features not aligned with OpenAI compatibility
- All PRs require review and approval from the lead maintainer
- Merge authority is reserved to maintain project direction
- We aim to review PRs within 1-2 business days
- Constructive feedback will be provided for rejected PRs
# Clone and setup
git clone https://github.com/Michael-A-Kuykendall/shimmy
cd shimmy
cargo build
# Run tests
cargo test
# Check formatting and linting
cargo fmt --check
cargo clippy -- -D warningsContributors are acknowledged in AUTHORS.md after a merged PR.
Open a GitHub Discussion or ping @Michael-A-Kuykendall in your PR.