cython/cython
cython/cython has 10,892 GitHub stars and 1,661 forks. Star changes are not measured yet. Last checked 2026-11-05 20:01 UTC. Last push 2026-11-05.
The most widely used Python to C compiler
Measured star growth
- in 24h
- Update delayed
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalWelcome to Cython!
Cython is an optimising Python compiler that makes writing C extensions for Python as easy as Python itself.
Cython translates Python code to C/C++ code, but additionally supports calling C functions and declaring C types on variables and class attributes. This allows broad to fine-grained manual tuning that lets the compiler generate very efficient C code from Cython code.
This makes Cython the ideal language for wrapping external C libraries, and for fast C modules that speed up the execution of Python code.
- Official website: https://cython.org/
- Documentation: https://docs.cython.org/
- Github repository: https://github.com/cython/cython
- Wiki: https://github.com/cython/cython/wiki
Cython has more than 70 million downloads <https://pypistats.org/packages/cython>_
per month on PyPI. You can support the Cython project via
Github Sponsors <https://github.com/users/scoder/sponsorship>_ or
Tidelift <https://tidelift.com/subscription/pkg/pypi-cython>_.
Installation:
If you already have a C compiler, just run following command::
pip install Cython
otherwise, see the installation page <https://docs.cython.org/en/latest/src/quickstart/install.html>_.
License:
The original Pyrex program, which Cython is based on, was licensed "free of restrictions" (see below). Cython itself is licensed under the permissive Apache License.
See LICENSE.txt <https://github.com/cython/cython/blob/master/LICENSE.txt>_.
Contributing:
Want to contribute to the Cython project?
Here is some help to get you started <https://github.com/cython/cython/blob/master/docs/CONTRIBUTING.rst>_.
Differences to other Python compilers
Started as a project in the early 2000s, Cython has outlived
most other attempts <https://wiki.python.org/moin/PythonImplementations#Compilers>_
at producing static compilers for the Python language.
Similar projects that have a relevance today include:
PyPy <https://www.pypy.org/>_, a Python implementation with a JIT compiler.- Pros: JIT compilation with runtime optimisations, fully language compliant, good integration with external C/C++ code
- Cons: non-CPython runtime, relatively large resource usage of the runtime, limited compatibility with CPython extensions, non-obvious performance results
Numba <http://numba.pydata.org/>_, a Python extension that features a JIT compiler for a subset of the language, based on the LLVM compiler infrastructure (probably best known for itsclangC compiler). It mostly targets numerical code that uses NumPy.- Pros: JIT compilation with runtime optimisations
- Cons: limited language support, relatively large runtime dependency (LLVM), non-obvious performance results
Pythran <https://pythran.readthedocs.io/>, a static Python-to-C++ extension compiler for a subset of the language, mostly targeted at numerical computation. Pythran can be (and is probably best) used as an additionalbackend for NumPy code <https://cython.readthedocs.io/en/latest/src/userguide/numpy_pythran.html>in Cython.mypyc <https://mypyc.readthedocs.io/>, a static Python-to-C extension compiler, based on themypy <http://www.mypy-lang.org/>static Python analyser. Like Cython'spure Python mode <https://cython.readthedocs.io/en/latest/src/tutorial/pure.html>_, mypyc can make use of PEP-484 type annotations to optimise code for static types.- Pros: good support for language and PEP-484 typing, good type inference, reasonable performance gains
- Cons: no support for low-level optimisations and typing, opinionated Python type interpretation, reduced Python compatibility and introspection after compilation
Nuitka <https://nuitka.net/>_, a static Python-to-C extension compiler.- Pros: highly language compliant, reasonable performance gains,
support for static application linking (similar to
cython_freeze <https://github.com/cython/cython/blob/master/bin/cython_freeze>_ but with the ability to bundle library dependencies into a self-contained executable) - Cons: no support for low-level optimisations and typing
- Pros: highly language compliant, reasonable performance gains,
support for static application linking (similar to
In comparison to the above, Cython provides
- fast, efficient and highly compliant support for almost all Python language features, including dynamic features and introspection
- full runtime compatibility with all still-in-use and future versions of CPython
- "generate once, compile everywhere" C code generation that allows for reproducible performance results and testing
- C compile time adaptation to the target platform and Python version
- support for other C-API implementations, including PyPy and Pyston
- seamless integration with C/C++ code
- broad support for manual optimisation and tuning down to the C level
- a large user base with thousands of libraries, packages and tools
- more than two decades of bug fixing and static code optimisations
The following is from Pyrex:
Cython was originally based on Pyrex <https://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/>_
by Greg Ewing, with the following written in the Pyrex readme document:
This is a development version of Pyrex, a language for writing Python extension modules.
For more info, take a look at:
- Doc/About.html for a description of the language
- INSTALL.txt for installation instructions
- USAGE.txt for usage instructions
- Demos for usage examples
Comments, suggestions, bug reports, etc. are most welcome!
Copyright stuff: Pyrex is free of restrictions. You may use, redistribute, modify and distribute modified versions.
The latest version of Pyrex can be found here <https://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/>_.
| Greg Ewing, Computer Science Dept | University of Canterbury | Christchurch, New Zealand
A citizen of NewZealandCorp, a wholly-owned subsidiary of USA Inc.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,310 starspublic-apis/public-apis
A collective list of free APIs
496,596 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
436,543 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,041 stars