BSD Ports

devel/py-cffi 2.1.1 NetBSD

Foreign Function Interface for Python calling C code

System
NetBSD
Repository
pkgsrc
Maintainer
[email protected]
Last update
Commit
f380c4524a
License
mit
Categories
devel, python
Package size
282.3 KiB, 1510.9 KiB installed

Description

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.

In the other systems

SystemPortVersion
NetBSDdevel/py-cffi2.1.1
FreeBSDdevel/py-cffi2.1.1
OpenBSDdevel/py-cffi2.1.1
DragonFlydevel/py-cffi1.17.1
MidnightBSDdevel/py-cffi2.1.0
HardenedBSDdevel/py-cffi2.1.1
GhostBSDdevel/py-cffi2.1.1
OPNsensedevel/py-cffi2.0.0

Install

Binary package:

pkgin install py311-cffi

From pkgsrc:

cd /usr/pkgsrc/devel/py-cffi && make install clean

Packages

The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.

RepositoryVersion
NetBSD 10.1 x86_642.1.1
NetBSD 10.1 aarch642.0.0
SmartOS / illumos x86_642.1.1
macOS 15 arm642.1.1

Dependencies

Run dependencies 3

Configuration

No options to configure.

Service scripts
none
Flavors
py312-cffi-2.1.1, py313-cffi-2.1.1, py314-cffi-2.1.1

Commit history 3

DateCommitCreditsLog message
f380c4524a wiz py-cffi: update test status
a85ddbd7f2 adam 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.
a17ba45652 adam 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.