Cython: C-Extensions for Python, Wiki
This is a wiki for anything related to the Cython or Pyrex projects.
Cython is a language that makes writing C extensions for the Python language as easy as Python itself.
Cython is based on the well-known Pyrex, but supports more cutting edge functionality and optimizations.
Development of Cython is partly motivated by the needs of SAGE.
See our proposals for the Google Summer of Code 2011.
Quick Links
Release History and older versions.
Example (Mandelbrot fractal)
Cython Installers
PyPi via easy_install or pip
Gentoo Ebuild (very old)
Debian package (not always up to date)
Unsupported Python features (aka TODO list)
Enhancement proposals (CEPs)
- Tips and Tricks
Discussion of all the options how to wrap C/C++ code to Python
Embedding Python to create standalone Cython programs.
List Subclass Example Adding mathematical operations to subclassed built-in list.
Automatic .pxd/.pyx generation from C or C++ header files.
People
Stefan Behnel, Robert Bradshaw, Dag Seljebotn, Lisandro Dalcin.
Mailing Lists
Our development mailing list is cython-dev and user mailing list at http://groups.google.com/group/cython-users.
In the past we also used a Google group and a list at BerliOS Developer. You can still read the archives at Gmane.
Project Goals
Fully supported easy-to-use test suite (see this post), including the normal CPython test suite.
- Easy installation and usage.
- Rich, accessible documentation. Make sure the examples are plenty and can be automatically tested.
- Make Cython part of the standard distribution of Python (like ctypes).
- Compile all Python code except for possibly some obvious exclusions, which will be worked out by developers.
- Very fast when the user explicitly declares types (but we're not going to make promises with type inference). Precise benchmarks.
- Mitigate or eliminate the need for users to invoke the Python/C API directly without sacrificing performance.
Documentation
Official Pyrex Language Overview (note the changes though).
CategoryCythonDoc lists pages that are related to Cython documentation.
SAGE Days 4 talk highlighting some of the differences between Pyrex and SageX (the predecessor of Cython).
