Automic VaultAutomic Vault

brew

Install cffi with Homebrew, apt

C Foreign Function Interface for Python. Version 2.1.0 via Homebrew; verified 2026-07-08.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install cffi

local Homebrew formula metadata

Linux

Debian aptverified · 92%
sudo apt install cl-cffi

Debian stable package indexes · cl-cffi · source: deb.debian.org

overview

Package summary

C Foreign Function Interface for Python

Commands and aliases

  • cffi-gen-src

history

Project history and usage

CFFI is the C Foreign Function Interface for Python, used to call C libraries from Python with declarations that stay close to C header syntax. It occupies the practical middle ground between Python's ctypes, handwritten CPython extensions, and larger binding generators such as SWIG or Cython.

Project history

The official documentation credits Armin Rigo and Maciej Fijalkowski and describes a design influenced by LuaJIT's FFI: users should mainly need to know C and Python, keep Python-related logic in Python, and choose between ABI-level and API-level access depending on portability and build needs.

PyPI lists the first cffi release, 0.1, on 2012-06-18. The 1.0.0 series in 2015 introduced the out-of-line generation model that became central to packaging CFFI-based wrappers with setuptools. Later releases continued to track newer CPython versions, PyPy use, wheels, platform support, and Python packaging changes.

Adoption history

CFFI became especially important in PyPy culture because the official installation notes describe it as distributed with PyPy and as the recommended way to interface with C libraries there. On CPython, it is common in packages that need C library access without maintaining a large handwritten extension layer.

The package's official PyPI page shows sustained maintenance across many releases from 2012 through 2026, with current wheels for major CPython versions and platforms. Homebrew packages it because command-line and build workflows sometimes need the project tooling alongside Python package-manager installs.

How it is used

Typical usage starts with `from cffi import FFI`, a `cdef()` block copied or adapted from C declarations, and either `ffi.dlopen()` for ABI mode or `ffibuilder.set_source()` plus compilation for API mode. The official overview presents both in-line and out-of-line modes and recommends API mode when a C compiler is available.

CFFI is used to wrap existing shared libraries, compile small C wrapper modules, allocate C data from Python, pass buffers and structs, call function pointers, and expose Python functions to embedded interpreters.

Why package nerds care

CFFI is package-nerd significant because it changed the shape of Python native-library packaging: projects can describe a C interface in Python and let the build backend generate extension glue, instead of carrying a large CPython C API surface.

It is also a useful marker for interpreter-portable native bindings. Package maintainers care about whether a project uses CFFI because it affects wheels, build dependencies, PyPy compatibility, libffi availability, and whether downstream systems need compiler toolchains.

Timeline

  • 2012: PyPI lists cffi 0.1 as released on 2012-06-18.
  • 2015: cffi 1.0.0 introduced out-of-line module generation.
  • 2020: cffi 1.14.1 release notes say source hosting moved to Heptapod.
  • 2025: PyPI lists cffi 2.0.0 as released on 2025-09-08.
  • 2026: PyPI lists cffi 2.1.0 as released on 2026-07-06.

Related projects

  • CFFI is discussed by its docs alongside LuaJIT FFI, ctypes, Cython, SWIG, CPython native C extensions, PyPy, pycparser, and libffi.

security posture

No protected-tool coverage found yet

No matching local secret-handling manifest was found for cffi. Nucleus package metadata is still published here so future coverage has a stable package URL.

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 8 platform targets.
  • Installs with 1 runtime dependencies.
  • Build metadata lists 2 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
cffi-gen-srccliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version2.1.0
manager updated2026-07-08
local dataok
upstreamnot checked
latest detectednot detected

https://cffi.readthedocs.io/en/latest/

install metadata

Package metadata

Package keybrew:cffi
Version2.1.0
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/cffi
Homepagehttps://cffi.readthedocs.io/en/latest/
Repositoryhttps://github.com/python-cffi/cffi
Upstream docshttps://cffi.readthedocs.io/en/stable
LicenseMIT-0
Source archivehttps://files.pythonhosted.org/packages/57/5f/ff100cae70ebe9d8df1c01a00e510e45d9adb5c1fdda84791b199141de97/cffi-2.1.0.tar.gz
Last updated2026-07-08T03:18:52Z
Pulseupdated
Dependenciespycparser
Build dependenciespython@3.13, python@3.14
Uses from macOSlibffi
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sequoia, sonoma, tahoe, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namecffi
Version Scheme0
Revision0
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Debian apt95%

cl-cffi 1:0.24.1-3

Common Foreign Function Interface for Common Lisp

https://common-lisp.net/project/cffi/

sudo apt install cl-cffi
  • Section: lisp
  • Architecture: all
  • Source Package: cffi
  • 9 dependencies
  • 2 optional deps
  • normalized package name match
  • Matched by: Cffi
Debian stable package indexes · deb.debian.org · Debian stable package indexes: cl-cffi from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Ubuntu apt95%

cl-cffi 1:0.24.1-3

Common Foreign Function Interface for Common Lisp

https://common-lisp.net/project/cffi/

sudo apt install cl-cffi
  • Section: universe/devel
  • Architecture: all
  • Source Package: cffi
  • 9 dependencies
  • 2 optional deps
  • normalized package name match
  • Matched by: Cffi
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: cl-cffi from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Nucleus package database
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment