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

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.15.1, Package name: py27-cffi-1.15.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.


Master sites:

Filesize: 496.583 KB

Version history: (Expand)


CVS history: (Expand)


   2023-11-05 14:36:15 by Thomas Klausner | Files touched by this commit (6)
Log message:
devel/py27-cffi: import py-cffi-1.15.1

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.