Cython
Meer info
- Type
- Compiler / taaluitbreiding
- Uitgebracht
- 2007
- Gemaakt door
- Robert Bradshaw, Stefan Behnel en anderen
- Licentie
- Apache 2.0
- Voorganger
- Pyrex
Schrijf vrijwel gewone Python, voeg typedeclaraties toe aan de vijf regels die de bottleneck vormen en compileer het geheel naar C.
Het begon in 2007 als afsplitsing van Greg Ewings Pyrex, gedreven door de behoeften van het wiskundesysteem Sage. De broncode wordt vertaald naar C en gebouwd tot een gewone Python-extensiemodule, zodat de rest van het programma er niets van merkt. Een lus met cdef int i slaat de hele objectlaag over en draait vaak honderd keer sneller.
Het tweede gebruik is even belangrijk: Cython is een prettige manier om bestaande C- en C++-bibliotheken te omhullen zonder met de hand CPython-API-lijmcode te schrijven. NumPy, pandas, scikit-learn en spaCy hebben allemaal Cython in hun kritiekste codepaden. Het nogil-blok geeft bovendien de GIL vrij, zodat threads echt parallel kunnen draaien.