Contributing
Thank you for your interest in contributing to RavenFabric.
Getting Started
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USER/RavenFabric.git - Create a feature branch:
git checkout -b feat/my-feature - Make your changes
- Run tests:
cargo test - Run linter:
cargo clippy - Format code:
cargo fmt - Push and open a Pull Request
Code Standards
- Language: All code, comments, and documentation in English
- Edition: Rust 2024, MSRV 1.85
- Error handling:
thiserrorin libraries,anyhowonly in binaries - Async: Use
async-traitfor async trait methods - Logging:
tracingcrate only — neverprintln!in libraries - Tests: Every public function must have at least one test
- Security: Every policy check, key validation, and crypto operation must have tests
Commit Messages
Use conventional commits:
feat: add QUIC transport driver
fix: resolve symlink before path policy check
refactor: extract connection manager from driver
docs: add relay setup guide
test: add roundtrip test for DTN bundle
Reference issues: feat: add QUIC transport #5
Security
- Security is always the top priority
- Never trade security for convenience
- No
unwrap()in library code — use?and proper error types - All types must be
Send + Sync - Deny-by-default — if unsure, deny
Reporting Security Issues
See SECURITY.md for responsible disclosure guidelines.