Contributing to NTL
NTL is fully open source and welcomes contributions from anyone, anywhere. This document outlines how to participate.Ways to Contribute
Specification
The NTL specification is a living document. Contributions include:- Clarifying existing language
- Proposing new features via the RFC process
- Identifying ambiguities or inconsistencies
- Reviewing open RFCs
Reference Implementation
The Rust reference implementation needs:- Core protocol implementation
- Adapter development
- Testing and benchmarking
- Documentation
- Platform-specific optimization
Ecosystem
Build tools, libraries, and integrations:- Client libraries in other languages (Go, Python, TypeScript, C)
- Monitoring and observability tools
- Deployment tooling (Docker, Kubernetes, bare metal)
- SiafuDB integration modules
Getting Started
Pull Request Process
- Fork the repository
- Create a feature branch (
git checkout -b feature/signal-compression) - Write tests for your changes
- Ensure all tests pass (
cargo test) - Ensure code passes linting (
cargo clippy) - Submit a pull request with a clear description
Code Style
- Follow Rust standard formatting (
cargo fmt) - Use
clippyfor linting - Write doc comments for all public interfaces
- Include unit tests for new functionality
- Include integration tests for protocol-level changes
Community
- GitHub Discussions — Questions, ideas, and general discussion
- GitHub Issues — Bug reports and feature requests
- Discord — Real-time chat and community