Awesome Cython
A curated list of awesome Cython resources.
Projects
- Main project.
- Cython+ - Project that aims at adding the actor model to Cython.
Resources
Academic Articles
- Cython: The Best of Both Worlds - Article by Stefan Behnel; Robert Bradshaw; Craig Citro; Lisandro Dalcin; Dag Sverre Seljebotn; Kurt Smith; IEEE Software, 2011.
Books
Books on, or related to, Cython
- Cython - Book by Kurt Smith, O'Reilly, 2015.
- Learning Cython Programming - Second Edition - Book by Philip Herron, Packt 2016.
Lectures
- Introduction à Cython - Lecture by Loïc Gouarin, 2013 (in French).
- Introduction to Cython - SoHPC 2021, James Nelson.
Other
Software
Cython implementation
- Cython ★7367 - "The most widely used Python to C compiler".
- Cython+ - Fork of Cython by the Cython+ project.
Cython librairies
Librairies specifically designed to complement Cython.
- Cygnals ★36 - cysignals: interrupt and signal handling for Cython.
- Pyrobuf ★541 - an alternative to Google's Python Protobuf library, than generates lightning-fast Cython code that's 2-4x faster than Google's Python Protobuf library using their C++ backend and 20-40x faster than Google's pure-python implementation.
Alternatives
- Pythran ★1807 - An ahead of time compiler for a subset of the Python language, with a focus on scientific computing. It takes a Python module annotated with a few interface description and turns it into a native Python module with the same interface, but (hopefully) faster.
- Numba ★7873 - A Just-In-Time Compiler for Numerical Functions in Python.
Some projects with more that 10 000 lines of Cython code
- Pandas ★35468 - A Python package that provides fast, flexible, and expressive data structures designed to make working with "relational" or "labeled" data both easy and intuitive.
- scipy ★10315 - Open-source software for mathematics, science, and engineering. It includes modules for statistics, optimization, integration, linear algebra, Fourier transforms, signal and image processing, ODE solvers, and more.
- scikit-learn ★51583 - A Python module for machine learning built on top of SciPy.
- spaCy ★24331 - Industrial-strength Natural Language Processing (NLP) with Python and Cython.
Some projects with more that 5 000 lines of Cython code
- Numpy ★21625 - The fundamental package for scientific computing with Python.
- Schrapnel ★215 - Shrapnel is a scalable, high-performance cooperative threading library for Python.
- scikit-image ★5071 - Image processing in Python.
- lxml ★2182 - The most feature-rich and easy-to-use library for processing XML and HTML in the Python language.
- Pomegranate ★2962 - Fast, flexible and easy to use probabilistic modelling in Python.
Some projects with more that 1 000 lines of Cython code
- BlackSheep ★1021 - Fast ASGI web framework and HTTP client for Python asyncio.
- pyimgui ★880 - Python bindings for the amazing dear imgui C++ library - a Bloat-free Immediate Mode Graphical User Interface.
- Antidote ★77 - Dependency injection for Python.