cffi

An alternative to the C API is to rewrite a C extension using cffi.

XXX write a better rationale why migrating to cffi!

Questions:

  • Is it easy to distribute binaries generated by cffi to avoid to require C headers and a C compiler? (Windows, macOS, Linux?)

  • How many popular Python modules use the C API? See Consumers of the Python C API.

  • How long would it take to rewrite a C extension with cffi?

  • What is the long-term transition plan to reach the “no C API” goal? At least, CPython will continue to use its own C API internally.

  • How to deal with backward compatibility?

Small practical issue: cffi is not part of the Python 3.7 standard library yet. Previous attempt to add it, in 2013: [Python-Dev] cffi in stdlib.

See also Cython and Remove the C API.