Pyrexは、 Pythonモジュールを作成するためのプログラミング言語です。その構文はPythonに非常に近く、PythonプログラマーがPythonをサポートしていないモジュールとのインターフェースコードを、Pythonにできるだけ近い言語で簡単に記述できるように設計されています。
Python自体は拡張モジュールを作成するためのC APIのみを提供しており、これによりC言語で関数やデータ型を記述できます。これらはPythonからアクセスできます。既存のCライブラリの関数やデータ型をPythonオブジェクトとしてラップすることで、Pythonから利用できるようになります。[ 2 ]
Pyrex を使用すると、外部の C コードに直接アクセスできる Python ライクな言語で拡張モジュールを作成できます。Pyrex の構文は Python と似ているため、Python モジュールを簡単に作成できますが、機能的な制限がいくつかあります。[ 3 ]プログラマは、モジュール内でアクセスする必要のある C ヘッダー ファイル、列挙型、データ型、関数の名前を指定する必要があります。そうすると、それらは Python オブジェクトであるかのように使用できます。Pyrex コンパイラは、必要なグルー コードを自動的に生成し、Pyrex コードを動作する Python モジュールにコンパイルします。
SWIGやPythonの外部関数ライブラリctypesのようなツールを使えば、追加コードをほとんど必要とせずにこのタスクを実行できますが、これは外部ライブラリをPythonコードで使用できるようにすることに限定されます。[ 4 ] [ 5 ] APIの調整が必要な場合は、グルーコードを手動で記述する必要があります。