Contributing to QuantWave
First off, thank you for considering contributing to QuantWave! It's people like you who make it such a great tool.
Development Workflow
Prerequisites
- Rust (2024 edition)
- Python 3.12+
cargo-nextest
Local Setup
- Clone the repository:
- Set up the virtual environment:
- Build the project:
Running Tests
We use nextest for Rust tests:
Adding a New Indicator
- Implement Core Logic: Add the indicator to
quantwave-core/src/indicators/implementing theNext<T>trait. - Add Polars Expression: Expose the indicator in
quantwave-pluginsorquantwave-polars. - Write Tests:
- Unit tests in
quantwave-core. - Parity tests (Streaming vs. Batch).
- Add to
gold_standardif applicable. - Document: Add a new page in
docs/guides/indicators/following the established template.
Style Guidelines
- Follow idiomatic Rust (run
cargo clippy). - Ensure all public functions have docstrings.
- Keep performance in mind; avoid unnecessary allocations.
Reporting Issues
Please use the GitHub issue tracker to report bugs or request features.