Markets and trading · Edition No. 17 · 11 Sep 2026

nautechsystems/nautilus_trader

A trading engine where the backtest and the live system run the same strategy code.

← Markets and tradingRead the whole edition →
NautilusTrader: a trading engine. The backtest and the live system share code.

28.6k stars · LGPL-3.0 · v1.231.0 (2026-08-02) · Track this in Rising ↗

Production-grade Rust-native event-driven trading engine with a Python API — the same code backtests and trades live.

Verified26 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive100

Last code pushed 26 Oct 2026, one day before this check.

Releases85

Latest release v1.231.0 on 2 Aug 2026.

Maturity100

Public since June 2018, a little over 8 years.

Adoption90

30,895 stars and 4,156 forks.

Activity100

1,879 commits and 372 new issues in the last 90 days.

Community100

220 contributors. 327 pull requests merged in 90 days.

Security80

A security policy says how to report a problem. No published security advisories.

Licence LGPL-3.0: free to use, even inside paid software; changes to this project itself must be shared
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 26 Oct 2026 from the repository on GitHub. Covered in Edition 17.

▶Repo detailsthe review · specs · pros & cons · install

What it does

The core is written in Rust and strategies are written in Python. Events are processed in a strict, repeatable order, so the same input produces the same result every time. It can replay historical data at the tick level, which is the most detailed record of what happened in a market. It models order queues, partial fills and delays, so a test hurts in the places a real market will. Several venues are supported, and adding another is a documented job rather than a rewrite. Version 1.231.0 reached PyPI on 2 August 2026, it needs Python 3.12 or newer, and code landed on 17 October 2026. It gives no advice and contains no strategies: what to trade and when is entirely yours to write.

Why it matters

Who it suits. Anybody who intends to run a strategy with real money. The usual failure is not a bad idea; it is a test that was kinder than reality. The connection is tightest for strategies that trade on small price moves, because small margins are exactly where a flattering backtest does the most damage. Skip it if the goal is to try an idea out this afternoon, because the first honest result is weeks away.

Verdict. Worth the weeks if real money is the destination, and a poor use of a free evening otherwise. Two things to watch. The licence is LGPL-3.0, so the library may be used inside a closed product, but modifications to the library itself must be published. The version number also moves quickly, so pin the version in use and read the release notes before changing it. QuantConnect/Lean is the main open alternative built on the same idea of one code path for both; mementum/backtrader is the gentler place to start, and no code has landed on it since August 2024.

Stars28.6k
LicenceLGPL-3.0
Latestv1.231.0 (2026-08-02)checked 7 Sep 2026
Written inRust
Summary (Key Points)from the README
Key features
  • Platforms and Python: Official builds cover Linux (x86_64 and ARM64), macOS (ARM64) and Windows (x86_64), for Python 3.13 to 3.14.
  • Precision modes: High-precision uses 128-bit integers with up to 16 decimals. Standard-precision uses 64-bit integers with up to 9 decimals.
  • Backtesting data: Backtests run multiple venues, instruments and strategies at once, using quote tick, trade tick, bar, order book and custom data at nanosecond resolution.
  • Order types: Supports IOC, FOK, GTC, GTD, DAY, AT_THE_OPEN and AT_THE_CLOSE time-in-force values, plus post-only, reduce-only and iceberg instructions, and OCO, OUO and OTO contingency orders.
  • Shared code path: The same strategy and execution-algorithm code runs in backtest and live trading.
  • Adapters: Any venue with a REST API or WebSocket feed can be added through modular adapters. Listed integrations include Binance, Bybit, Coinbase, Interactive Brokers, Betfair and Databento.
  • Performance stack: The Rust core uses the mimalloc allocator and tokio for asynchronous networking. Python bindings are built with PyO3.
  • Supply-chain checks: Release artifacts carry SLSA provenance or Sigstore signatures with SPDX SBOMs. CI also runs cargo-audit, cargo-deny and cargo-vet.
  • Vulnerability response: The project says it acknowledges reports within 48 hours and patches critical vulnerabilities within 30 days.
Ways to install
Platform or methodWhat it needsEffort
PyPI wheels (v2 release candidates)Python 3.13 or 3.14, pip, `--pre` flag, glibc 2.35 or newer on LinuxLow
Nautech Systems package indexpip, PEP-503 index access, optional `--extra-index-url` to search both indexesLow
Build from sourcerustup, clang, uv, a Git clone, and on Windows the C++ Build Tools for Visual Studio 2022High
Docker imagesDocker, with `nautilus_trader` or `jupyterlab` images from GHCRLow
Important
  • Release candidates: The v2 wheels are 2.0.0rcN builds. The README advises against using them in production or for live trading with real capital.
  • Stable version mismatch: Without `--pre`, pip installs the latest stable v1 wheel, whose Python API differs from the v2 documentation.
  • Development wheels: develop and nightly wheels are not recommended for production. Development wheels are not published for Windows or macOS (Intel), and the nightly index only covers Linux ARM64, macOS ARM64 and Windows x86_64 as listed.
  • Linux glibc: Confirm glibc is 2.35 or newer with `ldd --version` before installing binary wheels.
  • Live differences: Live trading adds venue, transport, timing, persistence and reconciliation behaviour that simulation may not reproduce.
  • Rust precision default: Pure Rust crates default to standard-precision unless the high-precision feature flag is enabled.
  • Source build setup: Building from source requires toolchain setup, and the README warns that PYO3_PYTHON must point to the project's own `python/.venv`.
  • Integration maturity: Integrations are marked planned, building, beta or stable, and some are listed without a status.
  • Scope limits: UI dashboards, distributed orchestration and built-in AI/ML tooling are out of scope.
  • Breaking changes: The API is becoming more stable, but breaking changes can still occur between releases.

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Good
  • The same strategy code backtests and trades live, so the two cannot drift apart.
  • Rust underneath makes it fast enough for tick-level work.
  • Many venues are supported, and adding another is a documented job.
Watch for
  • LGPL-3.0. Modifying the library itself obliges you to publish those modifications.
  • The learning curve is real. Expect weeks before a first honest result, and expect to read the source.
  • The interfaces change between versions. Pin the version and read the release notes.
Install
source venv/bin/activate
pip install -U nautilus_trader
# Documentation: https://nautilustrader.io/docs/
Screenshots
nautechsystems/nautilus_trader: GitHub preview cardnautechsystems/nautilus_trader: Screenshot 1nautechsystems/nautilus_trader: Screenshot 2

On Stack Radar: Trading & Investing › Trading Automation › Algorithmic Trading Bots.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.