Skip to main content

Crate nautilus_live

Crate nautilus_live 

Source
Expand description

Live system node for NautilusTrader.

The nautilus-live crate provides high-level abstractions and infrastructure for running live trading systems, including data streaming, execution management, and system lifecycle handling. It builds on top of the system kernel to provide simplified interfaces for live deployment:

  • LiveNode High-level abstraction for live system nodes.
  • LiveNodeConfig Configuration for live node deployment.
  • AsyncRunner for managing system real-time data flow.

§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, depending on the intended use case, i.e. whether to provide Python bindings for the nautilus_trader Python package, or as part of a Rust only build.

  • node (default): Enables the full live node, builder, config, and execution manager.
  • plugin (default): Keeps compatibility stubs for plug-in config validation.
  • ffi: Enables the C foreign function interface (FFI) from cbindgen.
  • streaming: Enables persistence dependency for streaming configuration (requires node).
  • python: Enables Python bindings from PyO3 (auto-enables node and streaming).
  • defi: Enables DeFi (Decentralized Finance) support.
  • extension-module: Builds the crate as a Python extension module.

§Lean adapter builds

Adapters and other consumers that only need the async event emitter, runner, and ExecutionClientCore re-export can opt out of the full kernel by disabling the node feature:

nautilus-live = { workspace = true, default-features = false }

With node disabled, this crate exposes only emitter and runner, and skips the transitive dependencies on nautilus-system, nautilus-trading, nautilus-portfolio, nautilus-risk, and nautilus-data.

§Plug-in support

The open-source live crate does not host dynamic plug-ins directly. nautilus-plugin is the public guest ABI crate, while host-side loading, vtables, bridge adapters, and server policy belong to the host-side plug-in integration. A non-empty LiveNodeConfig.plugins list is rejected unless an application provides that host-side integration.

nautilus-live = { workspace = true, default-features = false, features = ["node"] }

With plugin disabled, the compatibility plugin module is removed. A non-empty LiveNodeConfig.plugins list is rejected under this configuration as well.

Re-exports§

pub use execution::emitter;
pub use execution::emitter::ExecutionEventEmitter;
pub use execution::manager;
pub use node::plugin;
pub use node::builder;
pub use node::config;

Modules§

execution
node
Live trading node built on a single-threaded tokio event loop.
python
Python bindings from PyO3.
runner
Async event loop runner for live and sandbox trading nodes.

Structs§

ExecutionClientCore
Base implementation for execution clients providing identity and connection state.
OrderEventFactory
Factory for generating order and account events.