For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
  • About NVIDIA NeMo Relay
    • Overview
    • Architecture
    • Ecosystem
    • Concepts
    • Release Notes
  • Getting Started
    • Agent Runtime Primer
    • Prerequisites
    • Installation
    • Configuration / Setup
    • Quick Start
  • NVIDIA NeMo Relay CLI
    • About
    • Basic Usage
    • Claude Code
    • Codex
    • Cursor
    • Hermes Agent
  • Supported Integrations
    • About
    • OpenClaw Plugin Guide
    • LangChain Integration Guide
    • LangGraph Integration Guide
    • Deep Agents Integration Guide
  • Instrument Applications
    • About
    • Adding Scopes and Marks
    • Instrument a Tool Call
    • Instrument an LLM Call
    • Add Middleware
    • Code Examples
  • Observability Plugin
    • About
    • Configuration
    • Agent Trajectory Interchange Format (ATIF)
    • Agent Trajectory Observability Format (ATOF)
    • OpenTelemetry
    • OpenInference
  • Adaptive Plugin
    • About
    • Configuration
    • Adaptive Cache Governor (ACG)
    • Adaptive Hints
  • NeMo Guardrails Plugin
    • About
    • Configuration
  • Integrate into Frameworks
    • About
    • Adding Scopes
    • Wrap Tool Calls
    • Wrap LLM Calls
    • Handle Non-Serializable Data
    • Using Codecs
    • Provider Codecs
    • Provider Response Codecs
    • Code Examples
  • Build Plugins
    • About
    • Define a Plugin
    • Validate Plugin Configuration
    • Plugin Configuration Files
    • Register Plugin Behavior
    • Design Plugin Configuration
    • NeMo Guardrails Example Plugin
    • Code Examples
  • Contribute
    • About
    • Development Setup
    • Workflow and Reviews
    • Testing and Documentation
  • Reference
    • APIs
    • Performance
  • Resources
    • Support and FAQs
    • Glossary
    • Troubleshooting Guide
    • Community
    • Legal
NVIDIANVIDIA
Developer-friendly docs for your API
Privacy Policy | Your Privacy Choices | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2026, NVIDIA Corporation.

LogoLogo
On this page
  • Package Installation
  • Source Development
  • Branch Naming
  • Code Style
  • Rust
  • Python
  • General
Contribute

Development Setup

||View as Markdown|
Previous

About

Next

Workflow and Reviews

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
  • uv
  • just
  • Go 1.21 or newer
  • Node.js LTS
  • wasm-pack
  • cargo-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:

$git clone <repo-url> && cd NeMo-Relay
$uv sync
$cargo install just --locked
$uv run pre-commit install
$just build-rust
$just build-python
$just build-node

Validate the source builds for the experimental bindings when you touch them:

$cd go/nemo_relay
$CGO_LDFLAGS="-L../../target/release" LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}../../target/release" go test -v ./...
$cd ../..
$
$wasm-pack test --node crates/wasm

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 fmt
  • cargo clippy -- -D warnings
  • cargo deny check

Python

Use these Python commands and conventions when changing the wrapper package, tests, or docs tooling.

  • Ruff linting
  • Ruff formatting
  • ty type 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.