NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #914 most downloaded on PyPI
Typing stubs for cffi
Last release 1 months ago
27 Aug 2026
Release timing varies
gaps range from 8 days to 6 months
Nearly every release is documented
notes for 44 of 45 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
45 releases · first in 2022
One column per quarter.
* Bump to 2.1.*
Upgrade black to 26.5.0
Upgrade black to 26.5.0 (#15801)
Import some items from typing instead of typing_extensions
Import some items from typing instead of typing_extensions (#15711)
Part of #13782
[cffi] Annotate _CDataBase.__enter__ return type
[cffi] Annotate _CDataBase.__enter__ return type (#15701)
[cffi] Fix FFI.new's init arg is now Any.
[cffi] Fix FFI.new's init arg is now Any. (#15683)
[cffi] Fix FFI.NULL to be CData
[cffi] Fix FFI.NULL to be CData (#15680)
Use dashes instead of underscores for METADATA.toml field names
Use dashes instead of underscores for METADATA.toml field names (#15614)
Rename requires to dependencies in METADATA files
Nothing published for this version
[stubsabot] Bump cffi to 2.0.*
[stubsabot] Bump cffi to 2.0.* (#14689)
[cffi] Accept floats in cast
[cffi] Accept floats in cast (#15487)
Add @disjoint_base decorator to the third-party stubs
Add @disjoint_base decorator to the third-party stubs (#14716)
Update mypy to 1.18.1
Update mypy to 1.18.1 (#14699)
Add __slots__ to third-party packages using stubdefaulter
Fix dunder-method positional-only parameter discrepancies in third-party stubs
Make FFI.buffer implement buffer protocol, mark dunder methods as positional-only
Make FFI.buffer implement buffer protocol, mark dunder methods as positional-only (#14505)
Split tool.stubtest.platforms metadata key
Split tool.stubtest.platforms metadata key (#13746)
Co-authored-by: Avasam samuel.06@hotmail.com Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Fix some of the typing for CFFI's out of line mode
Fix some of the typing for CFFI's out of line mode (#14090)
Replace Incomplete | None = None in third party stubs
Replace Incomplete | None = None in third party stubs (#14063)
Improve cffi
Improve cffi (#13710)
[cffi] Fix a few argument types for C code
[cffi] Update repository URL
[cffi] Update repository URL (#13652)
Fix parameter type annotations in _cffi_backend stub.
Fix parameter type annotations in _cffi_backend stub. (#13590)
Update to mypy 1.14
Update to mypy 1.14 (#13272)
Remove bare Incomplete annotations in third-party stubs
Remove bare Incomplete annotations in third-party stubs (#11671)
Use PEP 570 syntax in third party stubs
Use PEP 570 syntax in third party stubs (#11554)
Update typing_extensions imports in third-party stubs
Update typing_extensions imports in third-party stubs (#11245)
[stubsabot] Bump cffi to 1.16.*
[stubsabot] Bump cffi to 1.16.* (#10799)
Release: https://pypi.org/pypi/cffi/1.16.0 Homepage: http://cffi.readthedocs.org Repository: https://foss.heptapod.net/pypy/cffi Changelog: https://cffi.readthedocs.io/en/latest/whatsnew.html
Fill in all missing upstream_repository fields
Fill in all missing upstream_repository fields (#10571)
Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
distutils package was removed in 3.12
distutils package was removed in 3.12 (#10249)
cffi: improve getitem and setitem
cffi: improve getitem and setitem (#9968)
Co-authored-by: Jelle Zijlstra jelle.zijlstra@gmail.com
[cffi] dlopen(None) works when platform != win32
[cffi] dlopen(None) works when platform != win32 (#10042)
Keeps _cffi_backend.pyi consistent with api.pyi
cffi: fix FFI.string signature (#10012)
Keeps _cffi_backend.pyi consistent with api.pyi
Add defaults for third-party stubs A-D
Add defaults for third-party stubs A-D (#9952)
[cffi] add some return types
[cffi] add some return types (#9949)
[cffi] cast source can be an int too
[cffi] cast source can be an int too (#9930)
[cffi] cast source can be an int too
Co-authored-by: Francesc Elies francesc.elies@mbbm-ast.com
Add alternate type for cffi's from_buffer (#9925)
Improve many __(a)exit__ annotations
Improve many __(a)exit__ annotations (#9696)
Stubtest settings: change ignore_missing_stub default to false
Stubtest settings: change ignore_missing_stub default to false (#9779)
If you're reading about this commit from an autogenerated changelog entry, this should have no user-visible impact on how the stubs are interpreted by a type checker; it's just an internal change to how typeshed's tests work.
Bump mypy to 1.0
Bump mypy to 1.0 (#9684)
Replace Any with Incomplete in many places
Replace Any with Incomplete in many places (#9558)
cffi: run stubtest on Windows
cffi: run stubtest on Windows (#9178)
All __nonzero__ are methods that return bool
All __nonzero__ are methods that return bool (#9139)
Annotate known magic-method return types
Annotate known magic-method return types (#9131)
Bump mypy to 0.981
Bump mypy to 0.981 (#8796)
Add type stubs for cffi (#8736) Co-authored-by: Alex Waygood
Add type stubs for cffi (#8736)
Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
Your coding agent can read these notes before it upgrades. Set up the MCP server →