Crate features / pyo3
Feature flags · pyo3 0.30.1 · from crates.io 2026-10-24
pyo3 features: what each one does, and the line to copy
Short answerpyo3 0.30.1 has 25 features. By default it turns on macros; add default-features = false to start from nothing. It needs Rust 1.85 or newer.
Pick features
Every feature
| Feature | In default | Turns on |
|---|---|---|
abi3 | pyo3-ffi/abi3 | |
abi3-py310 | abi3-py311, pyo3-ffi/abi3-py310 | |
abi3-py311 | abi3-py312, pyo3-ffi/abi3-py311 | |
abi3-py312 | abi3-py313, pyo3-ffi/abi3-py312 | |
abi3-py313 | abi3-py314, pyo3-ffi/abi3-py313 | |
abi3-py314 | abi3-py315, pyo3-ffi/abi3-py314 | |
abi3-py315 | abi3, pyo3-ffi/abi3-py315 | |
abi3-py39 | abi3-py310, pyo3-ffi/abi3-py39 | |
abi3t | pyo3-ffi/abi3t | |
abi3t-py315 | abi3t, pyo3-ffi/abi3t-py315 | |
arc_lock | lock_api, lock_api/arc_lock, parking_lot?/arc_lock | |
auto-initialize | nothing else (a switch the code checks) | |
bigdecimal | dep:bigdecimal, num-bigint | |
chrono-local | chrono/clock, dep:iana-time-zone | |
experimental-async | macros, pyo3-macros/experimental-async | |
experimental-inspect | pyo3-macros/experimental-inspect | |
extension-module | pyo3-ffi/extension-module | |
full | macros, anyhow, arc_lock, bigdecimal, bytes, chrono, chrono-local, chrono-tz, either, experimental-async, experimental-inspect, eyre, hashbrown, indexmap, jiff-02, lock_api, num-bigint, num-complex, num-rational, ordered-float, parking_lot, py-clone, rust_decimal, serde, smallvec, time, uuid | |
generate-import-lib | pyo3-ffi/generate-import-lib | |
macros | yes | pyo3-macros |
multiple-pymethods | inventory, pyo3-macros/multiple-pymethods | |
nightly | nothing else (a switch the code checks) | |
num-bigint | dep:num-bigint, dep:num-traits | |
parking_lot | dep:parking_lot, lock_api | |
py-clone | nothing else (a switch the code checks) |
dep:x turns on the optional dependency x; x/y turns on feature y of dependency x (with ?, only if x is already on).
MSRV history
The minimum Rust version pyo3 declares (rust-version), and the release that changed it:
- 0.20.0 (2023-10-11): Rust 1.56
- 0.22.4 (2024-10-12): Rust 1.63
- 0.26.0 (2025-08-29): Rust 1.74
- 0.28.2 (2026-02-18): Rust 1.83
- 0.30.1 (2026-10-14): Rust 1.85
Stuck on an older compiler? Pin the last version that supports it, for example cargo update -p pyo3 --precise <version>, or use resolver 3, which picks compatible versions for you.
More on pyo3
Real downloads, dependents and alternatives: pyo3 crate data (817.6K real downloads a day, 2,315 dependents).
Security record: pyo3 advisories.
docs.rs feature list · crates.io · license MIT OR Apache-2.0 · edition 2024
Up next
Before you depend on itpyo3 crate dataReal downloads, dependents, alternatives.Read it next →Did this answer your question?