Thank you for your interest in contributing to the Neural Transfer Layer. NTL is built on the Ubuntu philosophy — "I am because we are."
# Fork and clone
git clone https://github.com/YOUR_USERNAME/ntl.git
cd ntl
# Build
cargo build --workspace
# Run tests
cargo test --workspace
# Run clippy
cargo clippy --workspace --all-features
# Format
cargo fmt --all- Rust 1.85+ (install via rustup)
- Git
- Fork the repository
- Create a feature branch from
main - Make your changes
- Add tests for new functionality
- Ensure all checks pass:
cargo test --workspace cargo clippy --workspace --all-features -- -D warnings cargo fmt --all -- --check - Submit a pull request
ntl/
├── runtime/ntl-core/ # Core library (signals, synapses, propagation, crypto)
├── runtime/ntl-cli/ # CLI binary
├── runtime/ntl-node/ # Full node binary
├── runtime/ntl-edge/ # Edge node (lightweight)
├── adapters/ # Protocol adapters (web2, web3, legacy)
├── examples/ # Example applications
├── benchmarks/ # Performance benchmarks
├── docs/ # Mintlify documentation
├── rfcs/ # Protocol change proposals
└── spec/ # Formal specification
Changes to the NTL protocol specification require an RFC. See rfcs/0000-template.md for the template and the RFC process for details.
- Run
cargo fmtbefore committing - Follow clippy recommendations (
cargo clippy) - Write doc comments for all public items
- Use
thiserrorfor error types - Prefer
tracingoverprintln!for logging - No
unsafecode (enforced by#![forbid(unsafe_code)])
- Unit tests go in the same file as the code they test (
#[cfg(test)]module) - Integration tests go in
tests/directories - Property-based tests use
proptest - Benchmarks use
criterion
Use conventional commits:
feat:new featurefix:bug fixdocs:documentationrefactor:code restructuringtest:adding or updating testsbench:benchmark changesci:CI/CD changeschore:maintenance
All participants are expected to treat each other with respect, kindness, and good faith. We are building infrastructure for everyone.
By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.