Thank you for considering contributing to FastAlloc! We appreciate your time and effort in making this project better.
- Code of Conduct
- Getting Started
- Development Workflow
- Coding Standards
- Testing
- Pull Request Process
- Reporting Bugs
- Feature Requests
- Documentation
- Community
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
- Fork the repository on GitHub
- Clone your fork locally
git clone https://github.com/your-username/fastalloc.git cd fastalloc - Install Rust using rustup
- Install development tools:
rustup component add rustfmt clippy
- Create a new branch for your changes:
git checkout -b feature/your-feature-name
- Make your changes following the coding standards
- Run tests and verify everything works
- Commit your changes with a descriptive message
- Push to your fork and open a pull request
- Follow the Rust API Guidelines
- Use
rustfmtfor consistent code formatting - Run
cargo clippyto catch common mistakes and improve code quality - Document all public APIs with rustdoc comments
- Write unit tests for new functionality
- Keep commits focused and atomic
Run the test suite:
# Run all tests
cargo test --all-features
# Run tests for no_std
cargo test --no-default-features
# Run benchmarks
cargo bench
# Run MIRI to detect undefined behavior
cargo +nightly miri test
# Run fuzzing (if available)
cargo +nightly fuzz run <target>- Ensure all tests pass
- Update documentation as needed
- Add tests for new features or bug fixes
- Ensure your code is properly formatted
- Open a pull request with a clear description of changes
- Reference any related issues
- Wait for code review and address any feedback
Please open an issue on GitHub with the following information:
- Description of the bug
- Steps to reproduce
- Expected behavior
- Actual behavior
- Environment details (Rust version, OS, etc.)
- Any relevant logs or error messages
We welcome feature requests! Please open an issue describing:
- The feature you'd like to see
- Why this feature is valuable
- Any potential implementation ideas
Good documentation is crucial. When contributing:
- Document all public APIs
- Include code examples
- Update the README for user-facing changes
- Add or update examples in the
examples/directory
- Join our Discord server
- Follow us on Twitter
- Read our blog
By contributing to FastAlloc, you agree that your contributions will be licensed under its MIT/Apache-2.0 dual license.