Path to this page:
./
devel/py-cffi,
Foreign Function Interface for Python calling C code
Branch: CURRENT,
Version: 2.1.1,
Package name: py313-cffi-2.1.1,
Maintainer: pkgsrc-usersForeign Function Interface for Python calling C code. The aim of
this project is to provide a convenient and reliable way of calling
C code from Python. The interface is based on LuaJIT's FFI and
follows a few principles:
o The goal is to call C code from Python. You should be able to do
so without learning a 3rd language: every alternative requires
you to learn their own language (Cython, SWIG) or API (ctypes).
So we tried to assume that you know Python and C and minimize
the extra bits of API that you need to learn.
o Keep all the Python-related logic in Python so that you don't
need to write much C code.
o Work either at the level of the ABI (Application Binary Interface)
or the API (Application Programming Interface). Usually, C
libraries have a specified C API but often not an ABI.
o We try to be complete. For now some C99 constructs are not
supported, but all C89 should be, including macros.
o We attempt to support both PyPy and CPython, with a reasonable
path for other Python implementations like IronPython and Jython.
o Note that this project is not about embedding executable C code
in Python, unlike Weave. This is about calling existing C libraries
from Python.
Required to run:[
devel/py-setuptools] [
devel/libffi] [
devel/py-cparser] [
lang/python37]
Required to build:[
pkgtools/cwrappers]
Master sites:
Filesize: 518.366 KB
Version history: (Expand)
- (2026-08-04) Updated to version: py313-cffi-2.1.1
- (2026-07-10) Updated to version: py313-cffi-2.1.0
- (2025-10-24) Package has been reborn
- (2025-10-24) Updated to version: py313-cffi-2.0.0
- (2025-10-24) Package deleted from pkgsrc
- (2025-09-21) Updated to version: py312-cffi-2.0.0
CVS history: (Expand)
2026-08-04 23:44:04 by Thomas Klausner | Files touched by this commit (1) |  |
Log message:
py-cffi: update test status
|
2026-08-04 22:16:06 by Adam Ciarcinski | Files touched by this commit (2) |  |
Log message:
py-cffi: updated to 2.1.1
2.1.1
* Minimize internal Python API usage for interpreter and thread state sampling \
where possible.
Avoids breaking ABI change in Python >= 3.15.0b4.
|
2026-07-10 11:42:35 by Adam Ciarcinski | Files touched by this commit (5) |  |
Log message:
py-cffi: updated to 2.1.0
2.1.0
Added the cffi-gen-src command-line tool (also invocable as python -m \
cffi.gen_src), which generates CFFI C extension source code, so that a build \
backend such as meson-python can build the extension. See Generating C Sources \
for CFFI Extensions for details. Integrated from the cffi-buildtool project by \
Rose Davidson.
Added support for arm64 iOS wheels.
Dropped support for Python 3.9.
Added support for Python 3.15 and support for C extensions generated by CFFI to \
target the new abi3t free-threaded ABI.
Avoid crashes inside of __delitem__.
Avoid “string too big” error under MSVC.
Fix mingw builds.
|
2025-09-21 17:31:05 by Thomas Klausner | Files touched by this commit (3) |  |
Log message:
py-cffi: update to 2.0.0.
Added support for free threaded CPython (3.14t+ only). (#178)
Note that the free-threaded build does not yet support building
extensions with the limited API, so you must set py_limited_api=False
when building extensions for the free-threaded build. CPython
3.13t is not currently supported due to differences in sync
primitive behavior from 3.14t that result in segfaults.
Added support for Python 3.14. (#177)
Dropped support for Python 3.8.
|
2025-04-12 11:50:46 by Adam Ciarcinski | Files touched by this commit (18) |  |
Log message:
Fix PLIST after py-setuptools update; bump depends and revision
|
| 2025-02-02 11:38:04 by Havard Eidnes | Files touched by this commit (28) |
Log message:
lang/python and a number of python packages: re-do atomic64.mk issue.
Evidently, python 3.13 brought in the need to support 64-bit atomics.
This means that python extension packages built with C needs to
use mk/atomic64.mk to make -latomic available on the required 32-bit
ports. Sadly, there is no reliable way to detect in the .mk files
whether the package is using C (or C++), so this change adds an
unconditional include of mk/atomic64.mk when the python version is
equal to or larger than 3.13 for packages using egg.mk or wheel.mk.
This undoes the individual package Makefile inclusions of mk/atomic64.mk
that I've added over the last few days.
|
| 2025-01-18 11:09:21 by Havard Eidnes | Files touched by this commit (1) |
Log message:
devel/py-cffi: use atomic64.mk to fix build with python 3.13 on macppc.
|
| 2024-11-11 08:29:31 by Thomas Klausner | Files touched by this commit (862) |
Log message:
py-*: remove unused tool dependency
py-setuptools includes the py-wheel functionality nowadays
|