Foreign Function Interface for Python calling C code.
Project Links
Meta
Author: Armin Rigo, Maciej Fijalkowski
Maintainer: Matt Davis, Matt Clay, Matti Picus
Requires Python: >=3.9
Classifiers
Programming Language
- Python
- Python :: 3
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
- Python :: 3.14
- Python :: Free Threading :: 2 - Beta
- Python :: Implementation :: CPython
CFFI
Foreign Function Interface for Python calling C code.
Please see the Documentation or uncompiled in the doc/ subdirectory.
Download
Source Code
Source code is publicly available on GitHub.
Contact
Testing/development tips
After git clone or wget && tar, we will get a directory called cffi or cffi-x.x.x. we call it repo-directory. To run tests under CPython, run the following in the repo-directory:
pip install pytest
pip install -e . # editable install of CFFI for local development
pytest src/c/ testing/
2.0.0
Sep 08, 2025
2.0.0b1
Jul 29, 2025
1.17.1
Sep 04, 2024
1.17.0
Aug 06, 2024
1.17.0rc1
May 23, 2024
1.16.0
Sep 28, 2023
1.16.0rc2
Sep 26, 2023
1.16.0rc1
Sep 25, 2023
1.15.1
Jun 30, 2022
1.15.0
Oct 13, 2021
1.15.0rc2
Oct 06, 2021
1.15.0rc1
Sep 22, 2021
1.14.6
Jul 09, 2021
1.14.5
Feb 11, 2021
1.14.4
Nov 24, 2020
1.14.3
Sep 15, 2020
1.14.2
Aug 15, 2020
1.14.1
Jul 26, 2020
1.14.0
Feb 07, 2020
1.13.2
Nov 03, 2019
1.13.1
Oct 21, 2019
1.13.0
Oct 15, 2019
1.12.3
Apr 19, 2019
1.12.2
Feb 26, 2019
1.12.1
Feb 16, 2019
1.12.0
Feb 13, 2019
1.11.5
Feb 27, 2018
1.11.4
Jan 13, 2018
1.11.3
Jan 11, 2018
1.11.2
Oct 09, 2017
1.11.1
Oct 04, 2017
1.11.0
Sep 16, 2017
1.10.0
Mar 21, 2017
1.9.1
Nov 12, 2016
1.9.0
Nov 12, 2016
1.8.3
Sep 17, 2016
1.8.2
Sep 06, 2016
1.7.0
Jun 20, 2016
1.6.0
Apr 21, 2016
1.5.2
Feb 13, 2016
1.5.1
Feb 13, 2016
1.5.0
Jan 16, 2016
1.4.2
Dec 21, 2015
1.4.1
Dec 17, 2015
1.4.0
Dec 17, 2015
1.3.1
Nov 18, 2015
1.3.0
Oct 21, 2015
1.2.1
Aug 20, 2015
1.2.0
Aug 19, 2015
1.1.2
Jun 09, 2015
1.1.1
Jun 07, 2015
1.1.0
May 30, 2015
1.0.3
May 25, 2015
1.0.2
May 23, 2015
1.0.1
May 21, 2015
1.0.0
May 19, 2015
0.9.2
Mar 13, 2015
0.9.1
Mar 08, 2015
0.9.0
Mar 03, 2015
0.8.6
Jul 05, 2014
0.8.5
Jul 05, 2014
0.8.4
Jul 05, 2014
0.8.3
Jul 05, 2014
0.8.2
Mar 07, 2014
0.8.1
Nov 24, 2013
0.8
Nov 14, 2013
0.7.2
Aug 01, 2013
0.7.1
Aug 01, 2013
0.7
Aug 01, 2013
0.6
Apr 05, 2013
0.5
Feb 07, 2013
0.4.2
Nov 28, 2012
0.4.1
Nov 25, 2012
0.4
Nov 21, 2012
0.3
Aug 13, 2012
0.2.1
Jul 27, 2012
0.2
Jul 26, 2012
0.1
Jun 18, 2012
Wheel compatibility matrix
Files in release
cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl (180.0KiB)
cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl (176.3KiB)
cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl (203.9KiB)
cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (211.3KiB)
cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl (198.5KiB)
cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl (198.3KiB)
cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (211.4KiB)
cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl (213.7KiB)
cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl (206.3KiB)
cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl (212.9KiB)
cffi-2.0.0-cp310-cp310-win32.whl (168.1KiB)
cffi-2.0.0-cp310-cp310-win_amd64.whl (178.5KiB)
cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl (180.0KiB)
cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl (176.3KiB)
cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl (204.7KiB)
cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (211.4KiB)
cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl (198.6KiB)
cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl (197.8KiB)
cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (210.5KiB)
cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl (213.8KiB)
cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl (207.0KiB)
cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl (212.0KiB)
cffi-2.0.0-cp311-cp311-win32.whl (168.0KiB)
cffi-2.0.0-cp311-cp311-win_amd64.whl (178.5KiB)
cffi-2.0.0-cp311-cp311-win_arm64.whl (173.5KiB)
cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl (180.9KiB)
cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl (176.8KiB)
cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl (207.5KiB)
cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (214.9KiB)
cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl (203.1KiB)
cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl (201.7KiB)
cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (214.4KiB)
cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl (217.7KiB)
cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl (216.2KiB)
cffi-2.0.0-cp312-cp312-win32.whl (168.9KiB)
cffi-2.0.0-cp312-cp312-win_amd64.whl (179.3KiB)
cffi-2.0.0-cp312-cp312-win_arm64.whl (173.6KiB)
cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl (180.9KiB)
cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl (176.8KiB)
cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl (207.5KiB)
cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (214.9KiB)
cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl (203.1KiB)
cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl (201.6KiB)
cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (214.4KiB)
cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl (217.7KiB)
cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl (216.1KiB)
cffi-2.0.0-cp313-cp313-win32.whl (168.9KiB)
cffi-2.0.0-cp313-cp313-win_amd64.whl (179.1KiB)
cffi-2.0.0-cp313-cp313-win_arm64.whl (173.6KiB)
cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl (181.0KiB)
cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl (177.2KiB)
cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (214.9KiB)
cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl (202.9KiB)
cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl (201.5KiB)
cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (214.1KiB)
cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl (217.6KiB)
cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl (215.7KiB)
cffi-2.0.0-cp314-cp314-win32.whl (171.2KiB)
cffi-2.0.0-cp314-cp314-win_amd64.whl (181.3KiB)
cffi-2.0.0-cp314-cp314-win_arm64.whl (176.5KiB)
cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl (184.3KiB)
cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl (180.7KiB)
cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (216.4KiB)
cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl (204.4KiB)
cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl (203.6KiB)
cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (216.4KiB)
cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl (219.2KiB)
cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl (218.2KiB)
cffi-2.0.0-cp314-cp314t-win32.whl (176.3KiB)
cffi-2.0.0-cp314-cp314t-win_amd64.whl (187.2KiB)
cffi-2.0.0-cp314-cp314t-win_arm64.whl (179.9KiB)
cffi-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl (180.0KiB)
cffi-2.0.0-cp39-cp39-macosx_11_0_arm64.whl (176.3KiB)
cffi-2.0.0-cp39-cp39-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl (203.9KiB)
cffi-2.0.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (211.4KiB)
cffi-2.0.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl (198.5KiB)
cffi-2.0.0-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.whl (198.4KiB)
cffi-2.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (211.5KiB)
cffi-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl (213.8KiB)
cffi-2.0.0-cp39-cp39-musllinux_1_2_i686.whl (206.3KiB)
cffi-2.0.0-cp39-cp39-musllinux_1_2_x86_64.whl (212.9KiB)
cffi-2.0.0-cp39-cp39-win32.whl (168.1KiB)
cffi-2.0.0-cp39-cp39-win_amd64.whl (178.5KiB)
cffi-2.0.0.tar.gz (511.3KiB)
Extras:
None
Dependencies:
pycparser