nautilus-network 0.61.0

Network communication machinery for the Nautilus trading engine
Documentation

nautilus-network

build Documentation crates.io version license Discord

Network functionality for NautilusTrader.

The nautilus-network crate provides networking components including HTTP, WebSocket, and raw TCP socket clients, rate limiting, backoff strategies, and socket TLS utilities for connecting to trading venues and data providers.

NautilusTrader

NautilusTrader is an open-source, production-grade, Rust-native engine for multi-asset, multi-venue trading systems.

The system spans research, deterministic simulation, and live execution within a single event-driven architecture, providing research-to-live semantic parity.

Feature flags

This crate provides feature flags to control source code inclusion during compilation:

  • python: Enables Python bindings from PyO3.
  • extension-module: Builds as a Python extension module.
  • turmoil: Enables deterministic network simulation testing with turmoil.
  • transport-sockudo: Adds the sockudo-ws WebSocket backend, selectable via WebSocketConfig.backend.

WebSocket performance

The 512 B text round‑trip benchmark measures 50,000 messages after 1,000 warmup messages. Values are the median of three bench-lto runs on an AMD Ryzen Threadripper 9980X with the CPU governor set to performance and ASLR disabled. Lower latency is better.

Library p50 (µs) p95 (µs) p99 (µs) p99.9 (µs)
tokio-tungstenite 0.30.0 2.033 2.985 3.305 6.149
sockudo-ws 2.0.1 0.601 0.631 0.651 0.721

On this workload, sockudo-ws 2.0.1 has 80% lower p99 latency than tokio-tungstenite 0.30.0. See the full WebSocket benchmark report for all payloads, burst latency, throughput, methodology, and limitations.

Testing

The crate includes both standard integration tests and deterministic network simulation tests using turmoil.

To run standard tests:

cargo nextest run -p nautilus-network

To run turmoil network simulation tests:

cargo nextest run -p nautilus-network --features turmoil

The turmoil tests simulate various network conditions (reconnections, partitions, etc.) in a deterministic way, allowing reliable testing of network failure scenarios without flakiness.

Some real localhost socket and WebSocket unit tests are Linux-only for CI stability. On macOS, use the Turmoil tests and soak for deterministic reconnect/path-search coverage, and rely on a Linux run for host TCP unit coverage.

To sweep Turmoil reconnect seeds continuously:

scripts/soak-network-turmoil.sh

Set NAUTILUS_TURMOIL_SOAK_COUNT for a bounded run. The soak alternates the Tungstenite and Sockudo WebSocket backends on the same seed when transport-sockudo is enabled.

Documentation

See the docs for more detailed usage.

License

The source code for NautilusTrader is available on GitHub under the GNU Lesser General Public License v3.0.


NautilusTrader™ is developed and maintained by Nautech Systems, a technology company specializing in the development of high-performance trading systems. For more information, visit https://nautilustrader.io.

Use of this software is subject to the Disclaimer.

© 2015-2026 Nautech Systems Pty Ltd. All rights reserved.