Python Backtesting Libraries in 2026: What the Rankings Get Wrong
Key takeaway
Backtrader tops almost every 2026 ranking of Python backtesting libraries. Its last commit was in April 2023. Here is what the registries say about all six, and the licence question nobody mentions.
Backtrader appears at or near the top of almost every list of Python backtesting libraries published this year. Its last commit to GitHub was on 19 April 2023. The two facts sit together comfortably because nobody checks: the rankings are copied from each other, and a library with 23,000 stars looks alive whether or not anyone is still maintaining it.
This article does the boring thing instead. Every number below was pulled from the package registry and the source repository on 17 September 2026, and anyone can re-run the same check in a minute. The conclusion is not the one the rankings give you, and the deciding factor turns out to be something they almost never mention: the licence.
The table
| Library | Stars | Last commit | Latest release | Licence |
|---|---|---|---|---|
| Freqtrade | 54,472 | 17 Sep 2026 | 2026.8 | GPL-3.0 |
| NautilusTrader | 29,065 | 17 Sep 2026 | 1.231.0 | LGPL-3.0 |
| Backtrader | 23,260 | 19 Apr 2023 | 1.9.78.123 | GPL-3.0 |
| VectorBT | 9,110 | 2 Aug 2026 | 1.1.0 | Custom, not OSI-standard |
| backtesting.py | 8,968 | 5 Aug 2026 | 0.6.6 | AGPL-3.0 |
| Zipline-reloaded | 1,938 | 13 Nov 2025 | 3.1.1 | Apache-2.0 |
Three things jump out, and none of them appears in the usual comparison posts.
1. The most recommended library has been frozen for three years
Backtrader’s last commit is dated April 2023 and its last release on PyPI is the same day. That is three years and five months of no changes, against a Python release cadence of roughly one version a year. It is not abandoned in the sense of being deleted — the code still installs and still runs — but nothing that has happened to Python, pandas or any exchange API since 2023 has been accounted for.
This does not make it useless. Backtrader’s event-driven design is still the clearest teaching model of how an order actually reaches a broker, and its documentation remains better than most of what replaced it. If you are learning how a backtest is structured, it is a reasonable place to start. If you are building something you intend to run against live data in 2027, you are adopting a dependency that nobody is going to patch for you.
The honest summary: excellent to read, risky to depend on.
2. The licence is the decision, not the speed
This is the part that gets left out, and it is the part that costs money.
Backtesting frameworks are mostly published under copyleft licences, and copyleft has consequences that only appear when you try to turn your strategy into a product:
- AGPL-3.0 — backtesting.py. The AGPL extends the obligation to software offered over a network. If you build a web service on top of it and let other people use it, the licence asks you to make your source available to those users. For a personal backtest this is irrelevant; for a subscription product it is the whole ball game.
- GPL-3.0 — Backtrader and Freqtrade. Distributing a derived work means distributing the source. Running it privately for your own trading does not trigger anything.
- LGPL-3.0 — NautilusTrader. Materially more permissive when the library is used as a library rather than modified.
- Apache-2.0 — Zipline-reloaded. The most business-friendly of the set, with an express patent grant.
- Non-standard — VectorBT. GitHub cannot classify its licence file, which is a flag worth taking seriously: an unclassified licence is one your own lawyer has to read rather than recognise.
Ordered by “can I build a commercial product on this without a conversation”, the ranking inverts almost completely: Apache first, then LGPL, then the GPL pair, then AGPL, with the custom licence in a category of its own. Not one of the popularity rankings mentions this.
3. The two most active projects are not backtesters
Freqtrade and NautilusTrader both had commits on the day this was written. They are also the two largest by stars. But neither is a backtesting library in the sense that Backtrader is: they are trading systems that include a backtester.
That difference matters more than it sounds. A backtester answers “would this rule have worked”. A trading system also has to answer “how do I hold state across a restart”, “what happens when the exchange rejects the order” and “who pages me at 3am”. If what you want is to test an idea over ten years of daily bars, adopting one of these means carrying a great deal of machinery you will not use.
What each one is actually for
| If you want to… | Use | Because |
|---|---|---|
| Learn how a backtest is built | Backtrader | Clearest event-driven model and the best docs; accept that it is frozen |
| Sweep thousands of parameter sets | VectorBT | Vectorised over arrays, orders of magnitude faster for grids; read the licence first |
| Run research with a data pipeline | Zipline-reloaded | Bundles and the Pipeline API; Apache licence; slower cadence but alive |
| Trade crypto live | Freqtrade | Most active project of the six, exchange integrations included |
| Build low-latency infrastructure | NautilusTrader | Rust core, event-driven, LGPL |
| Test one idea this afternoon | backtesting.py | Smallest surface area of the six; AGPL makes it a poor base for a product |
How to check this yourself
The point of this article is not the table; it is that the table goes stale and you should not have to trust it. Both registries expose the numbers without authentication:
- Release and version:
https://pypi.org/pypi/<package>/jsonreturns the current version and its upload date. - Activity and licence:
https://api.github.com/repos/<owner>/<repo>for stars and licence, and/commits?per_page=1for the date of the most recent commit.
Two minutes, no account. Do it before adopting any dependency you intend to run with money behind it, and do it again a year later.
The thing the library will not save you from
Choosing well matters less than most people writing about it suggest. None of these six protects you from the errors that make a backtest lie: look-ahead bias, survivorship in the price series, costs modelled optimistically, or a parameter grid searched until something looked good. A faster library only lets you overfit sooner.
That is the more useful thing to get right, and it is where the sizing question lives too — a strategy with a genuine edge still ruins an account if the position size is wrong, which is the arithmetic behind why nobody runs full Kelly and behind position sizing and risk of ruin. For the strategy layer above the tooling, see our guide to algorithmic trading strategies.
In short
Backtrader leads the 2026 rankings and has not been touched since April 2023. Freqtrade and NautilusTrader are the live projects, but they are trading systems rather than backtesters. Zipline-reloaded is the only one of the six under a permissive licence, and backtesting.py is AGPL, which decides the question for anyone planning to charge for what they build. Pick for the job and the licence, verify the dates yourself, and remember that the library is not what makes a backtest honest.
Figures verified against the PyPI and GitHub APIs on 17 September 2026 and valid as of that date. Educational content only; not investment advice. AssetWhisper does not publish trading signals.
Advertisement



