What changed in cffi from 1 to 2
3 releases numbered after v1.17.1 up to and including v2.1.1, stable releases only. v1.17.1 and v2.1.1 are the newest stable releases of 1 and 2 we track; this page follows them as new ones ship.
- 2 remove or deprecate something
12 changes across 3 releases
Added 5
- Added support for Python 3.15 and support for C extensions generated by CFFI to target the new abi3t free-threaded ABI
- Added cffi-gen-src CLI to generate CFFI C extension source for alternate build backend support
- Added support for arm64 iOS wheels
- Add Python 3.14 support
- Add CPython free-threaded support (3.14t+ only)
Fixed 5
Original release notes, newest first
The list above is our reading of these notes; the originals from cffi are here, one fold per release.
v2.1.1
What's Changed
- Minimize internal Python API usage for interpreter and thread state sampling where possible. Avoids breaking ABI change in Python >= 3.15.0b4 (https://github.com/python-cffi/cffi/pull/269).
Full Changelog: https://github.com/python-cffi/cffi/compare/v2.1.0...v2.1.1
v2.1.0
- Added support for Python 3.15 and support for C extensions generated by CFFI
to target the new
abi3tfree-threaded ABI. - Dropped support for Python 3.9.
- Added
cffi-gen-srcCLI to generate CFFI C extension source for alternate build backend support. - Fixed crashes inside
__delitem__. - Fixed "string too big" error under MSVC.
- Fixed mingw builds.
- Added support for arm64 iOS wheels.
v2.0.0
What's Changed
- Add Python 3.14 support.
- Add CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!
- Drop Python <= 3.8 support.
- Fix order dependency affecting nested type size calculation (#148).
Full Changelog: https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0