devel/py-cffi - The NetBSD Packages Collection

Foreign Function Interface for Python calling C code

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.

Build dependencies

devel/py-setuptools devel/py-wheel devel/py-build misc/py-installer pkgtools/mktools devel/pkgconf pkgtools/cwrappers

Runtime dependencies

devel/py-cparser devel/libffi lang/python312 lang/python312 devel/libffi

Binary packages

OSArchitectureVersion
NetBSD 10.0aarch64py310-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py311-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py312-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py38-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py39-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py310-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py311-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py312-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py38-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py39-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py310-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py311-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py312-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py38-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py39-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64py310-cffi-1.17.1.tgz
NetBSD 10.0aarch64py311-cffi-1.17.1.tgz
NetBSD 10.0aarch64py312-cffi-1.17.1.tgz
NetBSD 10.0aarch64ebpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64ebpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64ebpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64ebpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64ebpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0aarch64ebpy310-cffi-1.17.1.tgz
NetBSD 10.0aarch64ebpy311-cffi-1.17.1.tgz
NetBSD 10.0aarch64ebpy312-cffi-1.17.1.tgz
NetBSD 10.0alphapy310-cffi-1.16.0nb1.tgz
NetBSD 10.0alphapy311-cffi-1.16.0nb1.tgz
NetBSD 10.0alphapy312-cffi-1.16.0nb1.tgz
NetBSD 10.0alphapy38-cffi-1.16.0nb1.tgz
NetBSD 10.0alphapy39-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv4py310-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv4py311-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv4py312-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv4py38-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv4py39-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv6hfpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv6hfpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv6hfpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv6hfpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv6hfpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv6hfpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv6hfpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv6hfpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv6hfpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv6hfpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv6hfpy310-cffi-1.17.1.tgz
NetBSD 10.0earmv6hfpy311-cffi-1.17.1.tgz
NetBSD 10.0earmv6hfpy312-cffi-1.17.1.tgz
NetBSD 10.0earmv7hfpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv7hfpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv7hfpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv7hfpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv7hfpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv7hfpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv7hfpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv7hfpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv7hfpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv7hfpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0earmv7hfpy310-cffi-1.17.1.tgz
NetBSD 10.0earmv7hfpy311-cffi-1.17.1.tgz
NetBSD 10.0earmv7hfpy312-cffi-1.17.1.tgz
NetBSD 10.0i386py310-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py311-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py312-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py38-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py39-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py310-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py311-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py312-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py38-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py39-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py310-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py311-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py312-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py38-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py39-cffi-1.16.0nb1.tgz
NetBSD 10.0i386py310-cffi-1.17.1.tgz
NetBSD 10.0i386py311-cffi-1.17.1.tgz
NetBSD 10.0i386py312-cffi-1.17.1.tgz
NetBSD 10.0m68kpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0m68kpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0m68kpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0m68kpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0m68kpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0m68kpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0m68kpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0m68kpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0m68kpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0m68kpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0mips64ebpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0mips64ebpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0mips64ebpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0mips64ebpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0mips64ebpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0mips64ebpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0mips64ebpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0mips64ebpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0mips64ebpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0mips64ebpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0powerpcpy27-cffi-1.15.1.tgz
NetBSD 10.0powerpcpy310-cffi-1.15.1.tgz
NetBSD 10.0powerpcpy311-cffi-1.15.1.tgz
NetBSD 10.0powerpcpy37-cffi-1.15.1.tgz
NetBSD 10.0powerpcpy38-cffi-1.15.1.tgz
NetBSD 10.0powerpcpy39-cffi-1.15.1.tgz
NetBSD 10.0powerpcpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0powerpcpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0powerpcpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0powerpcpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0powerpcpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0powerpcpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0powerpcpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0powerpcpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0powerpcpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0powerpcpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0sh3elpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0sh3elpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0sh3elpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0sh3elpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0sh3elpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0sparc64py310-cffi-1.16.0nb1.tgz
NetBSD 10.0sparc64py311-cffi-1.16.0nb1.tgz
NetBSD 10.0sparc64py312-cffi-1.16.0nb1.tgz
NetBSD 10.0sparc64py38-cffi-1.16.0nb1.tgz
NetBSD 10.0sparc64py39-cffi-1.16.0nb1.tgz
NetBSD 10.0sparcpy310-cffi-1.16.0nb1.tgz
NetBSD 10.0sparcpy311-cffi-1.16.0nb1.tgz
NetBSD 10.0sparcpy312-cffi-1.16.0nb1.tgz
NetBSD 10.0sparcpy38-cffi-1.16.0nb1.tgz
NetBSD 10.0sparcpy39-cffi-1.16.0nb1.tgz
NetBSD 10.0sparcpy310-cffi-1.17.1.tgz
NetBSD 10.0sparcpy311-cffi-1.17.1.tgz
NetBSD 10.0sparcpy312-cffi-1.17.1.tgz
NetBSD 10.0x86_64py310-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py311-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py312-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py38-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py39-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py310-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py311-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py312-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py38-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py39-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py310-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py311-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py312-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py38-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py39-cffi-1.16.0nb1.tgz
NetBSD 10.0x86_64py310-cffi-1.17.1.tgz
NetBSD 10.0x86_64py311-cffi-1.17.1.tgz
NetBSD 10.0x86_64py312-cffi-1.17.1.tgz
NetBSD 9.0aarch64py310-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py311-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py312-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py38-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py39-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py310-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py311-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py312-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py38-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py39-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py310-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py311-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py312-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py38-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py39-cffi-1.16.0nb1.tgz
NetBSD 9.0aarch64py310-cffi-1.17.1.tgz
NetBSD 9.0aarch64py311-cffi-1.17.1.tgz
NetBSD 9.0aarch64py312-cffi-1.17.1.tgz
NetBSD 9.0alphapy310-cffi-1.16.0nb1.tgz
NetBSD 9.0alphapy311-cffi-1.16.0nb1.tgz
NetBSD 9.0alphapy38-cffi-1.16.0nb1.tgz
NetBSD 9.0alphapy39-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv4py310-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv4py311-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv4py312-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv4py38-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv4py39-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv6hfpy310-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv6hfpy311-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv6hfpy38-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv6hfpy39-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv6hfpy310-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv6hfpy311-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv6hfpy38-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv6hfpy39-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv6hfpy310-cffi-1.17.1.tgz
NetBSD 9.0earmv6hfpy311-cffi-1.17.1.tgz
NetBSD 9.0earmv7hfpy310-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv7hfpy311-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv7hfpy38-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv7hfpy39-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv7hfpy310-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv7hfpy311-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv7hfpy38-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv7hfpy39-cffi-1.16.0nb1.tgz
NetBSD 9.0earmv7hfpy310-cffi-1.17.1.tgz
NetBSD 9.0earmv7hfpy311-cffi-1.17.1.tgz
NetBSD 9.0i386py310-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py311-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py312-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py38-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py39-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py310-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py311-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py38-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py39-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py310-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py311-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py312-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py38-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py39-cffi-1.16.0nb1.tgz
NetBSD 9.0i386py310-cffi-1.17.1.tgz
NetBSD 9.0i386py311-cffi-1.17.1.tgz
NetBSD 9.0i386py312-cffi-1.17.1.tgz
NetBSD 9.0m68kpy311-cffi-1.16.0nb1.tgz
NetBSD 9.0m68kpy310-cffi-1.16.0nb1.tgz
NetBSD 9.0m68kpy311-cffi-1.16.0nb1.tgz
NetBSD 9.0m68kpy38-cffi-1.16.0nb1.tgz
NetBSD 9.0m68kpy39-cffi-1.16.0nb1.tgz
NetBSD 9.0m68kpy310-cffi-1.16.0nb1.tgz
NetBSD 9.0m68kpy311-cffi-1.16.0nb1.tgz
NetBSD 9.0m68kpy38-cffi-1.16.0nb1.tgz
NetBSD 9.0m68kpy39-cffi-1.16.0nb1.tgz
NetBSD 9.0powerpcpy310-cffi-1.16.0nb1.tgz
NetBSD 9.0powerpcpy311-cffi-1.16.0nb1.tgz
NetBSD 9.0powerpcpy312-cffi-1.16.0nb1.tgz
NetBSD 9.0powerpcpy38-cffi-1.16.0nb1.tgz
NetBSD 9.0powerpcpy39-cffi-1.16.0nb1.tgz
NetBSD 9.0powerpcpy27-cffi-1.15.1.tgz
NetBSD 9.0powerpcpy310-cffi-1.15.1.tgz
NetBSD 9.0powerpcpy311-cffi-1.15.1.tgz
NetBSD 9.0powerpcpy37-cffi-1.15.1.tgz
NetBSD 9.0powerpcpy38-cffi-1.15.1.tgz
NetBSD 9.0powerpcpy39-cffi-1.15.1.tgz
NetBSD 9.0powerpcpy310-cffi-1.16.0nb1.tgz
NetBSD 9.0powerpcpy311-cffi-1.16.0nb1.tgz
NetBSD 9.0powerpcpy312-cffi-1.16.0nb1.tgz
NetBSD 9.0powerpcpy38-cffi-1.16.0nb1.tgz
NetBSD 9.0powerpcpy39-cffi-1.16.0nb1.tgz
NetBSD 9.0sparc64py310-cffi-1.16.0nb1.tgz
NetBSD 9.0sparc64py311-cffi-1.16.0nb1.tgz
NetBSD 9.0sparc64py312-cffi-1.16.0nb1.tgz
NetBSD 9.0sparc64py38-cffi-1.16.0nb1.tgz
NetBSD 9.0sparc64py39-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py310-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py311-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py312-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py38-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py39-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py310-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py311-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py312-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py38-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py39-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py310-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py311-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py312-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py38-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py39-cffi-1.16.0nb1.tgz
NetBSD 9.0x86_64py310-cffi-1.17.1.tgz
NetBSD 9.0x86_64py311-cffi-1.17.1.tgz
NetBSD 9.0x86_64py312-cffi-1.17.1.tgz
NetBSD 9.3x86_64py310-cffi-1.17.0.tgz
NetBSD 9.3x86_64py311-cffi-1.17.0.tgz
NetBSD 9.3x86_64py312-cffi-1.17.0.tgz
NetBSD 9.3x86_64py310-cffi-1.17.1.tgz
NetBSD 9.3x86_64py311-cffi-1.17.1.tgz
NetBSD 9.3x86_64py312-cffi-1.17.1.tgz

Binary packages can be installed with the high-level tool pkgin (which can be installed with pkg_add) or pkg_add(1) (installed by default). The NetBSD packages collection is also designed to permit easy installation from source.

Available build options

(none)

Known vulnerabilities

The pkg_admin audit command locates any installed package which has been mentioned in security advisories as having vulnerabilities.

Please note the vulnerabilities database might not be fully accurate, and not every bug is exploitable with every configuration.


Problem reports, updates or suggestions for this package should be reported with send-pr.