Back to Explore

python-cffi/cffi

GitHub
1 watchersOpen source

Last release: 8 months ago

CFFI is a Foreign Function Interface package that lets Python call C code and C libraries. It provides documentation on how to use the interface, and the project is maintained with public code, releases, and tests.

Project status

  • Actively maintained: The upstream repository shows a recent push on 2026-04-24, and there were versioned updates in 2025 (v2.0.0, v2.0.0b1) plus earlier regular maintenance releases.
  • Apparent cadence: A beta followed by a final update in 2025 (b1 on 2025-07-28, final v2.0.0 on 2025-09-08), with the previous tagged maintenance update (v1.17.1) in 2024-09-04, suggesting roughly year-scale tagged cycles plus interim compatibility-focused updates.

AI summary generated 2 weeks ago

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v2.0.0

    8 months ago

    This release (v2.0.0) updates cffi to the final 2.0.0 version, with documented support changes for Python 3.14, including CPython free-threaded (3.14t+ only) support, and removal of Python 3.8 and below. The code diff also shows several internal and test/CI adjustments and documentation additions, with at least one potentially user-visible change not mentioned in the release notes.

    BreakingFeatures
  • v2.0.0b1

    10 months ago

    v2.0.0b1 focuses on Python 3.14 compatibility, adds CPython free-threaded (3.14t+) support, and drops Python versions <= 3.8. The diff also contains substantial internal refactoring for thread-safety and type realization behavior beyond what is explicitly called out in the release notes.

    BreakingFeatures
  • v1.17.1

    9/4/2024

    cffi v1.17.1 is primarily a maintenance release. It fixes Windows builds failing due to missing distutils.msvc9compiler, and extends emit_python_code and emit_c_code to accept file-like objects. The implementation also introduces a new internal switch in the recompilation pipeline to control whether ffiplatform is used.

    Features
  • v1.17.0

    8/6/2024

    v1.17.0 is the final release corresponding to the v1.17.0rc1 line. The provided code diff shows mostly version string and documentation updates to move from rc1 to the final 1.17.0 release, with no apparent behavioral implementation changes in this diff.

  • v1.17.0rc1

    5/23/2024

    v1.17.0rc1 adds support for Python 3.13, and expands the “special function object” behavior in API mode so it can be used in places that previously required a regular functionptr <cdata>. It also includes CI/build work for musllinux aarch64 wheels.

    Features
  • v1.16.0

    9/28/2023

    This release updates cffi from v1.16.0rc2 to the final v1.16.0 and refreshes all embedded version strings across the Python package, C backend, documentation, and test expectations. The provided code diff does not show new packaging/build logic or runtime API changes beyond the version finalization.

  • v1.16.0rc2

    9/26/2023

    v1.16.0rc2 is primarily a packaging/build housekeeping release. It fixes a packaging issue from rc1 by moving the project code layout under a top-level `src/` directory and updating build and packaging configuration accordingly.

  • v1.15.1

    9/25/2023

    This release includes a fix for a specific embedding scenario where calling ffi.embedding_api() without defining any extern "Python" functions could generate C code that fails an internal assert. It also updates the Windows/arm64 embedded libffi static library to version 3.4.2 to support future maintenance.

  • v1.16.0rc1

    9/25/2023

    v1.16.0rc1 adds Python 3.12 support and updates the build metadata and CI to move toward modern build tooling (PEP517, setuptools). The C extension code also changes internal closure handling and thread/GIL bookkeeping for newer CPython versions.

    BreakingFeatures