Selected Venue and Data Adapters
Relevant Rust source files
crates/adapters/databento/src/lib.rscrates/adapters/databento/src/factories.rscrates/adapters/interactive_brokers/src/lib.rscrates/adapters/interactive_brokers/src/factories.rscrates/common/src/factories/client.rscrates/live/src/node/builder.rs
This edition deliberately covers two native Rust adapters: Databento for historical/live market data and Interactive Brokers for brokerage market data and execution. Other upstream adapter crates are not part of the selected dependency or support surface.
Adapter contract
Adapters translate external protocols into Nautilus contracts. A data adapter resolves instruments and emits canonical market data. An execution adapter consumes Nautilus trading commands and emits order, fill, account, and reconciliation reports. Provider types, transport frames, and credentials remain inside the adapter.
Databento
nautilus-databento wraps the Databento SDK, DBN decoding, symbology, historical queries, and live subscriptions. Its factory constructs the live data client used by a LiveNode. The adapter owns provider schema conversion; downstream engines receive nautilus-model values.
Interactive Brokers
nautilus-interactive-brokers provides native data and execution clients plus their factories. It connects to TWS or IB Gateway, resolves contracts/instruments, routes subscriptions, maps orders and execution reports, and supports live-node examples. Broker connectivity, client identifiers, and reconciliation configuration are operational requirements.
Selection discipline
Do not pull another adapter into the runtime merely because it exists in the workspace. A new provider requires an accepted data/execution requirement, licensing and support review, fixture-backed semantic comparison, failure/recovery design, and an explicit factory registration path.