# 相關工作
> 原文: [http://docs.cython.org/en/latest/src/tutorial/related_work.html](http://docs.cython.org/en/latest/src/tutorial/related_work.html)
Pyrex [[Pyrex]](../quickstart/overview.html#pyrex) 是 Cython 最初基于的編譯器項目。 Cython 語言的許多功能和主要設計決策由 Greg Ewing 開發,作為該項目的一部分。今天,Cython 通過提供與 Python 代碼和 Python 語義的更高兼容性,以及優秀的優化和與 NumPy 等科學 Python 擴展的更好集成,取代了 Pyrex 的功能。
ctypes [[ctypes]](#ctypes) 是 Python 的外部函數接口(FFI)。它提供 C 兼容的數據類型,并允許在 DLL 或共享庫中調用函數。它可以用于在純 Python 代碼中包裝這些庫。與 Cython 相比,它具有主要優勢,即可以在標準庫中直接從 Python 代碼中使用,而無需任何其他依賴項。主要缺點是它的性能受到 Python 調用開銷的影響,因為所有操作必須首先通過 Python 代碼。 Cython 作為一種編譯語言,可以通過將更多功能和長時間運行的循環轉換為快速 C 代碼來避免大量此類開銷。
SWIG [[SWIG]](#swig) 是一個包裝器代碼生成器。它使得在 C / C ++頭文件中解析大型 API 定義變得非常容易,并為大量編程語言生成直接的包裝器代碼。然而,與 Cython 相反,它本身并不是一種編程語言。薄包裝器很容易生成,但包裝器需要提供的功能越多,使用 SWIG 實現它就越困難。另一方面,Cython 使得為 Python 語言編寫非常精細的包裝代碼變得非常容易,并且可以根據需要在任何給定的位置使其變薄或變厚。此外,存在用于解析 C 頭文件并使用它來生成 Cython 定義和模塊骨架的第三方代碼。
ShedSkin [[ShedSkin]](#shedskin) 是一個實驗性的 Python-to-C ++編譯器。它使用非常強大的整個模塊類型推理引擎從(受限制的)Python 源代碼生成 C ++程序。主要缺點是它不支持為本機不支持的操作調用 Python / C API,并且支持很少的標準 Python 模塊。
<colgroup><col class="label"><col></colgroup>
| [[ctypes]](#id2) | [https://docs.python.org/library/ctypes.html](https://docs.python.org/library/ctypes.html) 。 |
<colgroup><col class="label"><col></colgroup>
| [[ShedSkin]](#id4) | M. Dufour,J。Coughlan,ShedSkin, [https://github.com/shedskin/shedskin](https://github.com/shedskin/shedskin) |
<colgroup><col class="label"><col></colgroup>
| [[SWIG]](#id3) | David M. Beazley 等,SWIG:一種易于使用的工具,用于將腳本語言與 C 和 C ++集成, [http://www.swig.org](http://www.swig.org) 。 |
- Cython 3.0 中文文檔
- 入門
- Cython - 概述
- 安裝 Cython
- 構建 Cython 代碼
- 通過靜態類型更快的代碼
- Tutorials
- 基礎教程
- 調用 C 函數
- 使用 C 庫
- 擴展類型(又名.cdef 類)
- pxd 文件
- Caveats
- Profiling
- Unicode 和傳遞字符串
- 內存分配
- 純 Python 模式
- 使用 NumPy
- 使用 Python 數組
- 進一步閱讀
- 相關工作
- 附錄:在 Windows 上安裝 MinGW
- 用戶指南
- 語言基礎
- 擴展類型
- 擴展類型的特殊方法
- 在 Cython 模塊之間共享聲明
- 與外部 C 代碼連接
- 源文件和編譯
- 早期綁定速度
- 在 Cython 中使用 C ++
- 融合類型(模板)
- 將 Cython 代碼移植到 PyPy
- Limitations
- Cython 和 Pyrex 之間的區別
- 鍵入的內存視圖
- 實現緩沖協議
- 使用并行性
- 調試你的 Cython 程序
- 用于 NumPy 用戶的 Cython
- Pythran 作為 Numpy 后端