@@ -133,8 +133,8 @@ also be considered:
133
133
compile most Python code to C extension modules. The initial compilation
134
134
provides some speed increases (by bypassing the CPython interpreter layer),
135
135
and Cython's optional static typing features can offer additional
136
- opportunities for speed increases. Using Cython still has the disadvantage
137
- of increasing the complexity of distributing the resulting application ,
136
+ opportunities for speed increases. Using Cython still carries the
137
+ ` disadvantages `_ associated with using binary extensions ,
138
138
but has the benefit of having a reduced barrier to entry for Python
139
139
programmers (relative to other languages like C or C++).
140
140
@@ -160,10 +160,15 @@ but they *can* significantly reduce the maintenance burden of keeping
160
160
wrapper modules up to date.
161
161
162
162
* In addition to being useful for the creation of accelerator modules,
163
- `Cython <https://cython.org/ >`__ is also useful for creating wrapper
164
- modules for C or C++. It still involves wrapping the interfaces by
165
- hand, however, and is very repetitive, so may not be a good choice for
166
- wrapping large APIs.
163
+ `Cython <https://cython.org/ >`__ is also widely used for creating wrapper
164
+ modules for C or C++ APIs. It involves wrapping the interfaces by
165
+ hand, which gives a wide range of freedom in designing and optimising
166
+ the wrapper code, but may not be a good choice for wrapping very
167
+ large APIs quickly. See the
168
+ `list of third-party tools <https://github.com/cython/cython/wiki/AutoPxd >`_
169
+ for automatic wrapping with Cython. It also supports performance-oriented
170
+ Python implementations that provide a CPython-like C-API, such as PyPy
171
+ and Pyston.
167
172
168
173
* :doc: `pybind11 <pybind11:index >` is a pure C++11 library
169
174
that provides a clean C++ interface to the CPython (and PyPy) C API. It
0 commit comments