Development Setup
This section collects the setup steps needed before building, testing, or contributing changes.
Package Installation
If you are consuming NeMo Relay rather than developing this repository, install the published package for your language. Use Installation for package-manager commands covering the CLI, Python, Node.js, Rust, and supported integrations.
Go, WebAssembly, and the raw FFI surface are currently experimental and remain source-first.
Source Development
Install these tools before you start:
- Rust stable
- Python 3.11 or newer
uvjust- Go 1.21 or newer
- Node.js LTS
wasm-packcargo-deny
If you touch Go, WebAssembly, or the raw FFI surface, build and validate those bindings from source in the same branch.
Clone the repository and build the workspace:
Validate the source builds for the experimental bindings when you touch them:
Branch Naming
Use these prefixes:
feat/fix/docs/test/refactor/
Code Style
These style requirements keep contributions consistent across Rust, Python, Go, and general repository files.
Rust
Use these Rust commands and conventions when changing the core runtime or Rust-facing API surface.
cargo fmtcargo clippy -- -D warningscargo deny check
Python
Use these Python commands and conventions when changing the wrapper package, tests, or docs tooling.
- Ruff linting
- Ruff formatting
tytype checking
General
These general conventions apply across files and language surfaces.
- Follow binding-appropriate naming conventions.
- Keep SPDX headers intact.
- Preserve the shared lifecycle and middleware model across bindings.