]> granicus.if.org Git - python/commitdiff
emphasize that cffi is better than extension modules for portability
authorBenjamin Peterson <benjamin@python.org>
Mon, 5 Jan 2015 20:38:46 +0000 (14:38 -0600)
committerBenjamin Peterson <benjamin@python.org>
Mon, 5 Jan 2015 20:38:46 +0000 (14:38 -0600)
Doc/extending/extending.rst

index e78fe0c4b1e4e0234e90ddd0c910986f3d0fcc37..c10efa976d11cd6eb90fb0ab11c961041392d4b9 100644 (file)
@@ -20,12 +20,17 @@ source file by including the header ``"Python.h"``.
 The compilation of an extension module depends on its intended use as well as on
 your system setup; details are given in later chapters.
 
-Do note that if your use case is calling C library functions or system calls,
-you should consider using the :mod:`ctypes` module rather than writing custom
-C code. Not only does :mod:`ctypes` let you write Python code to interface
-with C code, but it is more portable between implementations of Python than
-writing and compiling an extension module which typically ties you to CPython.
+.. note::
 
+   The C extension interface is specific to CPython, and extension modules do
+   not work on other Python implementations.  In many cases, it is possible to
+   avoid writing C extensions and preserve portability to other implementations.
+   For example, if your use case is calling C library functions or system calls,
+   you should consider using the :mod:`ctypes` module or the `cffi
+   <http://cffi.readthedocs.org>`_ library rather than writing custom C code.
+   These modules let you write Python code to interface with C code and are more
+   portable between implementations of Python than writing and compiling a C
+   extension module.
 
 
 .. _extending-simpleexample: