Skip to main content

System requirements

NanoARB is designed for high-performance trading and has specific system requirements.

Minimum requirements

  • Rust: 1.75 or higher (1.84+ recommended)
  • Operating System: Linux, macOS, or Windows with WSL2
  • CPU: x86-64 architecture (AMD or Intel)
  • Memory: 4GB RAM minimum (8GB+ recommended)
  • Disk: 2GB free space for builds
For optimal performance:
  • Rust: 1.84+
  • CPU: AMD EPYC or Intel Xeon with high single-thread performance
  • Memory: 16GB+ RAM
  • OS: Linux kernel 5.10+ for best latency performance
Performance benchmarks in the README (780ns median latency) were measured on AMD EPYC 7763 (AWS c6a.8xlarge).

Installing Rust

NanoARB requires Rust 1.75 or higher. The recommended way to install Rust is via rustup.
Verify installation:

Updating Rust

If you already have Rust installed, make sure it’s up to date:

Installing dependencies

Core dependencies

NanoARB has minimal runtime dependencies since it’s written entirely in Rust. However, you’ll need build tools.

UI dependencies (optional)

For the real-time dashboard, you’ll need Node.js and pnpm:
Verify installation:

Python dependencies (optional)

For ML model training, you’ll need Python 3.11+:
GPU recommended for trainingTraining Mamba models is computationally intensive. A CUDA-compatible GPU with 8GB+ VRAM is strongly recommended. CPU training will be significantly slower.
Key Python packages (from requirements.txt):
  • torch>=2.1.0 - PyTorch for deep learning
  • mamba-ssm>=1.2.0 - State Space Models (Linux only)
  • onnx>=1.15.0 - ONNX export for Rust inference
  • gymnasium>=0.29.0 - RL environments
  • d3rlpy>=2.3.0 - Offline RL algorithms

Installing NanoARB

1

Clone the repository

2

Build the project

Build in release mode for optimal performance:
This will compile all workspace crates:
  • nano-core - Core types and traits
  • nano-feed - Market data parser
  • nano-lob - Order book engine
  • nano-model - ML inference
  • nano-backtest - Backtesting engine
  • nano-strategy - Trading strategies
  • nano-gateway - Main binary
The compiled binary will be at target/release/nanoarb.
First build can take 5-10 minutes depending on your system. Subsequent builds are incremental and much faster.
3

Install UI dependencies (optional)

This installs Next.js and React dependencies for the dashboard UI.
4

Verify installation

Expected output:
5

Run tests

Verify everything works correctly:
All tests should pass. If any fail, see the Troubleshooting section.

Docker setup (optional)

For monitoring with Prometheus and Grafana:
Access points:

Platform-specific notes

Linux

NanoARB is optimized for Linux. For best performance:
These performance tweaks require root access and affect system-wide settings. Only apply in dedicated trading environments.

macOS

NanoARB works on macOS but with slightly higher latency than Linux. Some notes:
  • Use Apple Silicon (M1/M2/M3) for best performance
  • Intel Macs are supported but will be slower
  • Some Python packages (mamba-ssm) may not be available on macOS

Windows

Native Windows is not recommended. Use WSL2 instead:
Then follow Linux installation instructions inside WSL2.

Cargo.toml overview

NanoARB’s Cargo.toml defines a workspace with optimized release settings:
Cargo.toml (excerpt)
Key dependencies:
  • tokio - Async runtime
  • axum - HTTP server
  • nom - Zero-copy parsing
  • ndarray - Tensor operations
  • prometheus-client - Metrics
  • rust_decimal - Fixed-point arithmetic

Troubleshooting

Install development tools:
NanoARB requires Rust 1.75+. Update:
If compilation runs out of memory, try:
Another process is using port 9090:
Clear pnpm cache and retry:
mamba-ssm only supports Linux with CUDA. On macOS or without GPU:
  1. Skip mamba-ssm (you can still use pre-trained ONNX models)
  2. Use Google Colab for training (see colab_training.py)
  3. Train on a Linux GPU instance
The release binary with full LTO can be 50-100MB. To reduce size:
Then rebuild:
Note: This may slightly reduce performance.

Next steps

Now that NanoARB is installed, you can:

Quickstart

Get your first backtest running

Configuration

Customize trading parameters

API Reference

Explore the full API

Model Training

Train custom ML models

Getting help

If you encounter issues not covered here:
  1. Check the GitHub Issues
  2. Review the Contributing Guide
  3. Open a new issue with:
    • Your OS and Rust version (rustc --version)
    • Full error output
    • Steps to reproduce