./devel/py-cffi, Foreign Function Interface for Python calling C code

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ]


Branch: CURRENT, Version: 2.1.1, Package name: py313-cffi-2.1.1, Maintainer: pkgsrc-users

Foreign 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)


CVS history: (Expand)


   2026-08-04 23:44:04 by Thomas Klausner | Files touched by this commit (1) | Package updated
Log message:
py-cffi: update test status
   2026-08-04 22:16:06 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
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) | Package updated
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) | Package updated
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) | Package updated
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