Home
4668 words
23 minutes
RustによるPython拡張モジュール構築ツール「Maturin」の技術仕様とビルド・デプロイメントパイプラインの解説

last_modified: 2026-04-07

※この記事は、生成AIによって自動生成された。


1. 序論:Maturinのアーキテクチャと目的#

Maturinは、Rust言語で記述されたコードをPythonの拡張モジュールとしてコンパイルし、パッケージ化するためのビルドシステムである。PyO3やrust-cpython等のバインディングライブラリと連携し、Rustの所有権モデルによる安全性と実行速度をPython環境に統合する目的で使用される。

従来、Pythonの性能クリティカルな処理はCythonやCFFIを用いてC言語で実装されることが多かった。しかしRustの台頭により、メモリ安全性とゼロコスト抽象化を備えた代替手段として、RustベースのPython拡張モジュール開発が現実的な選択肢となりつつある。Maturinはこの文脈において、RustのビルドシステムであるCargoとPythonパッケージングエコシステム(PEP 517/518/621等)の間を橋渡しするツールとして位置づけられる。

本稿では、MaturinのCLIによるビルドプロセスの制御、配布用パッケージの生成手法、および各種オプションの仕様について、事実と公式ドキュメントに基づき体系的に解説する。

1.1 開発パイプラインの基本構造#

Maturinの操作は、主に以下の2つのフェーズに大別される。

開発フェーズ(ローカル環境での動作確認)

develop コマンドを用いて、ビルドされた共有ライブラリを現在のPython仮想環境(venv または conda)に直接インストールする。これにより、pip install -e . に相当する開発用インストールが実現される。

maturin develop             # デバッグビルド(非最適化、シンボル情報付き)
maturin develop --release   # リリースビルド(最適化済み)

デバッグビルドはコンパイル速度が速い反面、実行速度は低下する。--release フラグはCargoの --release オプションに対応し、LLVM最適化が有効化されたバイナリを生成する。実行速度のプロファイル取得や本番環境に近い条件でのテスト時に利用される。

配布フェーズ(パッケージ生成・公開)

build コマンドを用いて、Python Package Index(PyPI)等のリポジトリへアップロードするためのWheel(.whl)ファイルを生成する。デフォルトでは、実行環境のアーキテクチャおよびPythonバージョンに依存したWheelが target/wheels/ ディレクトリに出力される。

maturin build               # デバッグビルドのWheel生成
maturin build --release     # リリースビルドのWheel生成
maturin publish             # ビルド + PyPIへのアップロード

publish コマンドは内部的に build を実行した後、twine 相当のアップロード処理を行う。PyPIのAPIトークンは環境変数 MATURIN_PYPI_TOKEN または ~/.pypirc から読み込まれる。なお、maturin bmaturin build の、maturin devmaturin develop の短縮エイリアスとして利用できる。


2. 本論:出力制御とソース配布の仕様#

ビルド成果物の配置先や生成されるアーカイブの形式は、CLIオプションによって細かく制御される。

2.1 出力ディレクトリ指定(-o / --out#

生成されたWheelファイルやソース配布パッケージの保存先ディレクトリを指定する。CI/CDパイプラインにおいて、アーティファクトの収集場所を固定する際に有用である。

maturin build --release -o dist/

上記の例では、デフォルトの target/wheels/ ではなく、指定した dist/ ディレクトリにバイナリ成果物が配置される。GitHub ActionsやGitLab CI等のパイプラインでは、アーティファクトのアップロードパスを固定するためにこのオプションを明示的に指定するケースが多い。

2.2 ソース配布パッケージ生成(--sdist#

バイナリ形式のWheelに加えて、ソース配布(Source Distribution, sdist)である .tar.gz アーカイブを生成するオプションである。

maturin build --release --sdist -o dist/
# sdistのみを生成する場合
maturin sdist -o dist/

sdistの内容物

sdistにはプラットフォーム固有のバイナリは含まれず、以下のファイル群が収録される。

ファイル/ディレクトリ役割
Cargo.toml / Cargo.lockRustパッケージマネージャの設定・依存ロック
src/Rustソースコード
pyproject.tomlPythonビルドシステム設定(PEP 518)
PKG-INFOパッケージメタデータ(PEP 241)

sdistからのインストールにはユーザー環境にRustツールチェイン(rustccargo)が必要となるため、配布先ユーザーの技術水準を考慮した上で採用を判断することが望ましい。sdistは、プラットフォーム対応Wheelが存在しない環境へのフォールバックとしても機能する。


3. CLIオプションの詳細仕様#

3.1 コンパイル制御オプション#

-r / --release

Cargoのリリースモードを有効にする。LLVMによる最適化(インライン展開、デッドコード除去等)が適用され、デバッグビルドと比較して実行速度が大幅に向上する一方、コンパイル時間は増加する。

-j / --jobs <N>

並列コンパイルジョブ数を指定する。デフォルトはCPU論理コア数と同数である。ビルドサーバーのリソース制約に合わせて調整する場合に使用する。

maturin build --release -j 4

--profile <PROFILE-NAME>

Cargoの任意のビルドプロファイルを指定する。Cargo.toml[profile.<n>] セクションで定義したカスタムプロファイル(例: profilinglto 等)を使用できる。--release--profile は排他的であり、同時に指定することはできない。

# Cargo.toml でのカスタムプロファイル定義例
[profile.profiling]
inherits = "release"
debug = true
maturin build --profile profiling

--target-dir <DIRECTORY>

Cargoが生成するすべての中間成果物(.o ファイル、.rlib 等)の出力先ディレクトリを指定する。デフォルトは target/。ディスクスペースの管理や複数プロジェクトでのキャッシュ共有に利用する。

--timings=<FMTS>

ビルドのタイミング情報を出力する(unstable機能)。html または json 形式を指定でき、コンパイルのボトルネック分析に使用する。

3.2 フィーチャーフラグ制御オプション#

CargoのフィーチャーフラグはMaturinからも直接制御できる。これにより、ビルド時に有効化する機能セットを細かく調整することが可能である。

-F / --features <FEATURES>

有効化するCargoフィーチャーをスペースまたはカンマ区切りで指定する。

# pyo3のabi3機能とカスタムフィーチャーを同時に有効化する例
maturin build --release --features "pyo3/abi3-py38,my_feature"

--all-features

Cargo.toml で定義されているすべてのフィーチャーを有効化する。

--no-default-features

デフォルトで有効化されるフィーチャー([features] セクションの default キー)を無効化する。特定の機能のみを選択的に有効化したい場合に --features と組み合わせて使用する。

3.3 バインディング種別の指定(-b / --bindings#

MaturinがRustとPythonの間で使用するバインディングの種類を明示的に指定する。通常はプロジェクトの依存関係から自動検出されるが、自動検出が機能しない場合や特定のバインディングを強制する場合に指定する。

説明
pyo3PyO3バインディング(最も一般的)
pyo3-ffiPyO3のFFI層を直接使用するバインディング
cffiC FFIバインディング。cffi Pythonパッケージを介した呼び出し
uniffiMozilla UniFFIバインディング。スキーマ定義ファイルから自動生成
binPythonモジュールではなくバイナリとして配布する場合

cffibin の場合、pyproject.toml[tool.maturin] セクションで bindings キーを明示的に指定する必要がある。

# pyproject.toml(cffiバインディングの例)
[tool.maturin]
bindings = "cffi"

3.4 インタープリタ指定オプション#

-i / --interpreter [<INTERPRETER>...]

Wheelをビルドする対象のPythonインタープリタを実行ファイルのパスまたは名前で指定する。複数指定することで、各バージョン向けのWheelを一括生成できる。

maturin build --release -i python3.9 python3.10 python3.11 python3.12

-f / --find-interpreter

ホストマシンにインストールされているすべてのPythonインタープリタを自動検出し、それぞれに対応したWheelを生成する。CI環境で複数Pythonバージョン向けのWheelを網羅的に生成する際に有用である。

maturin build --release --find-interpreter

3.5 プラットフォーム互換性オプション#

--compatibility [<compatibility>...]

生成されるWheelのプラットフォームタグを制御する。

説明
manylinux2014glibc 2.17以上。現在の最低要件(Rust 1.64以降)
musllinux_1_2musllibc 1.2以上。Alpine Linux等の musl ベース環境向け
linux互換性チェックなし。実行環境を限定する場合
pypiPyPIが受け付けるすべての互換プラットフォームに限定
maturin build --release --compatibility manylinux2014

--auditwheel <AUDITWHEEL>

manylinuxコンプライアンスの検査・修正動作を制御する。

説明
repairコンプライアンス違反の共有ライブラリをWheelに同梱して修正
checkコンプライアンスの検査のみを行い、修正はしない
skipコンプライアンス検査をスキップする

repair を使用してリンクしている共有ライブラリをWheelに同梱する場合、patchelf が必要となる(pip install maturin[patchelf])。

--zig

ZigコンパイラをCリンカとして使用し、manylinux互換のWheelをホスト環境から直接生成する。事前に pip install maturin[zig](またはシステムへのzig本体のインストール)が必要である。

maturin build --release --target aarch64-unknown-linux-gnu --zig

3.6 ストリップとデバッグ情報#

--strip

生成されるバイナリからデバッグシンボルを除去し、ファイルサイズを最小化する。本番配布時のWheelサイズ削減に有効である。--include-debuginfo と同時には使用できない。

--include-debuginfo

デバッグ情報ファイル(Windows: .pdb、macOS: .dSYM、Linux: .dwp)をWheelに同梱する。有効にすると、Maturinは自動的に split-debuginfo=packed を設定して分離デバッグ情報ファイルを生成する。本番環境でのクラッシュ解析やプロファイリングに使用する。

3.7 マニフェスト・ロックファイル制御#

-m / --manifest-path <PATH>

使用する Cargo.toml のパスを明示的に指定する。デフォルトではカレントディレクトリまたは親ディレクトリの Cargo.toml が使用される。ワークスペース構成のリポジトリで特定のクレートをビルドする場合に指定する。

maturin build --release -m crates/my_extension/Cargo.toml

--frozen

Cargo.lock およびキャッシュの内容が最新であることを要求する。Cargo.lock が最新でない場合はビルドを失敗させる。再現可能なCIビルドを強制する場合に有用である。

--locked

Cargo.lock の内容のみが最新であることを要求する(キャッシュは対象外)。--frozen より制約が緩い。

--offline

ネットワークへのアクセスなしでビルドを実行する。すべての依存クレートがローカルキャッシュに存在する必要がある。オフライン環境やネットワーク制限のあるCIで使用する。

3.8 出力・診断オプション#

-q / --quiet

Cargoのログメッセージを表示しない。CIログを簡潔に保ちたい場合に使用する。

-v / --verbose

詳細なログを出力する。-vv でさらに詳細な(build.rs の出力を含む)ログが表示される。ビルド問題のデバッグに使用する。

--color <WHEN>

出力のカラーリングを制御する。auto(デフォルト)、alwaysnever から選択する。CI環境でANSIエスケープコードが問題になる場合に never を指定する。

--compression-method <COMPRESSION_METHOD>

Wheelアーカイブ(ZIP形式)の圧縮アルゴリズムを指定する。デフォルトは deflated(Deflate圧縮)。

説明
deflatedDeflate圧縮(デフォルト。標準的な互換性)
stored無圧縮。解凍速度が最速だがファイルサイズは大きくなる
zstdZstandard圧縮。高い圧縮率と展開速度を両立

3.9 develop コマンド固有のオプション#

-E / --extras <EXTRAS>

pip installextras に相当する、オプション依存グループを指定する。pyproject.toml[project.optional-dependencies] で定義したグループを有効化する。

maturin develop --extras=test,docs

--skip-install

ビルドは行うが、仮想環境へのインストールはスキップし、共有ライブラリをその場(in-place)に生成するのみとする。Python/RustのMixed Layoutプロジェクト(一部のコードがPythonで記述されている場合)でのみ動作する。

--uv

パッケージのインストールに pip ではなく uv を使用する。uv がシステムにインストールされている環境でインストール速度を向上させる場合に指定する。

--pip-path <PIP_PATH>

仮想環境の pip が見つからない場合等に、使用する pip の実行ファイルパスを明示的に指定する。

3.10 CI設定生成コマンド(generate-ci#

MaturinはCI設定ファイルの雛形を自動生成する generate-ci コマンドを提供している。

mkdir -p .github/workflows
maturin generate-ci github > .github/workflows/CI.yml

generate-ci のオプションには以下のものがある。

オプション説明
--platform <platform>...対象プラットフォームを指定(linux, musllinux, windows, macos, emscripten, all
--pytestpytestを用いたテストステップを追加
--zigクロスコンパイルにZigを使用するよう設定
--skip-attestationアーティファクトのアテステーションステップをスキップ
-o / --output <PATH>出力先ファイルパスを指定(デフォルトは標準出力)

4. 追加の主要な技術仕様#

4.1 PEP 621準拠のメタデータ管理#

Maturinは、プロジェクトのメタデータの管理について、以下2種類の構成をサポートしている。

Cargo.toml 単一管理構成

[package.metadata.maturin] セクションにPythonパッケージ固有のメタデータを記述する従来方式。設定ファイルが1つにまとまるという利点がある一方、PythonツールチェインとRustツールチェインの管理が混在する。

pyproject.toml + PEP 621構成

[project] テーブルを用いてPEP 621に準拠した形式でメタデータを記述する方式。pipbuilduv 等の標準的なPythonツールチェインとの統合が容易であり、現在推奨される構成である。Maturin固有の設定(フィーチャー、バインディング種別、manylinux設定等)は [tool.maturin] セクションに記述する。

# pyproject.toml(PEP 621準拠)
[build-system]
requires = ["maturin>=1.0,<2.0"]
build-backend = "maturin"

[project]
name = "example_module"
version = "0.1.0"
requires-python = ">=3.8"
dependencies = ["numpy>=1.24"]
classifiers = [
    "Programming Language :: Rust",
    "Programming Language :: Python :: Implementation :: CPython",
    "Programming Language :: Python :: Implementation :: PyPy",
]

[tool.maturin]
features = ["pyo3/abi3-py38"]
bindings = "pyo3"
compatibility = "manylinux2014"

pip install . を実行した際、pipはPEP 517に従い maturin をビルドバックエンドとして呼び出し、ビルドおよびWheelの生成を自動的に処理する。

4.2 クロスコンパイルの実装#

ビルドを実行するホスト環境とは異なるターゲットアーキテクチャ向けのWheel生成をサポートしている。--target オプションにRustのターゲットトリプルを指定することでクロスコンパイルが実行される。

# x86_64環境からAArch64 Linux向けのWheelを生成する例
maturin build --release --target aarch64-unknown-linux-gnu --zig

クロスコンパイルを実行するためには、以下の前提が必要となる。

  1. rustup target add aarch64-unknown-linux-gnu によるターゲットツールチェインの追加
  2. ターゲットアーキテクチャ向けのCクロスコンパイラ(リンカ)の設定(.cargo/config.toml[target.XXX] linker キー)
  3. ターゲット向けのPythonヘッダまたはABIスタブ(abi3 Wheelを使用する場合は省略可能)

Windowsクロスコンパイルについては、PyO3の generate-import-lib フィーチャーと cargo-xwin を組み合わせることで、Linux/macOSホストからWindowsターゲット向けWheelを生成できる。ただし、MSVC向けビルドにはMicrosoft CRTライセンスへの同意が必要となる点に注意が必要である。

4.3 manylinux コンプライアンスの確保#

Linux向けのバイナリを配布する際、古いglibc環境でも動作を保証するための規格として manylinux(PEP 513/571/599/600)がある。PyPIにLinux向けWheelをアップロードするためには、この規格への準拠が必須となる。Rust 1.64以降はglibc 2.17を最低要件とするため、少なくとも manylinux2014 に準拠したビルドが必要となる。

Dockerによる準拠確認(従来手法)

docker run --rm \
  -v $(pwd):/io \
  ghcr.io/pyo3/maturin build --release --manylinux 2014

ghcr.io/pyo3/maturin イメージは manylinux2014(glibc 2.17以降)対応のビルド環境を提供する。

Zigリンカを用いたホスト環境からのビルド

--zig オプションは内部的に zig cc をリンカとして使用し、ターゲットのglibcバージョンを固定したビルドを実現する。CIパイプラインでDockerを使用できない環境(GitHub ActionsのmacOSランナー等)での manylinux Wheel生成に特に有用である。

pip install maturin[zig]
maturin build --release --zig

4.4 複数Pythonバージョンへの対応#

PyO3の abi3 機能(pyo3 = { version = "...", features = ["abi3-py38"] })を有効にした場合、単一のWheelで指定バージョン以降のすべてのCPythonに対応するバイナリが生成されるため、バージョンごとのビルドが不要となる。生成されるWheelのファイル名は my-extension-1.0-cp38-abi3-manylinux_2_17_x86_64.whl のような形式となる。


5. CI/CDパイプラインへの統合#

5.1 GitHub Actionsを用いたマルチプラットフォームビルドの例#

# .github/workflows/release.yml
name: Build and Release

on:
  push:
    tags:
      - "v*"

jobs:
  build:
    strategy:
      matrix:
        include:
          - os: ubuntu-latest
            target: x86_64-unknown-linux-gnu
          - os: ubuntu-latest
            target: aarch64-unknown-linux-gnu
          - os: macos-latest
            target: x86_64-apple-darwin
          - os: macos-latest
            target: aarch64-apple-darwin
          - os: windows-latest
            target: x86_64-pc-windows-msvc

    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4

      - name: Build wheels
        uses: PyO3/maturin-action@v1
        with:
          target: ${{ matrix.target }}
          args: --release --out dist/ --find-interpreter
          sccache: "true"
          manylinux: auto

      - uses: actions/upload-artifact@v4
        with:
          name: wheels-${{ matrix.target }}
          path: dist/

  publish:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/download-artifact@v4
        with:
          pattern: wheels-*
          merge-multiple: true
          path: dist/

      - uses: PyO3/maturin-action@v1
        env:
          MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
        with:
          command: upload
          args: --non-interactive --skip-existing dist/*

maturin-action はPyO3プロジェクトが提供する公式のGitHub Action実装であり、manylinux 対応コンテナの自動選択や、--find-interpreter によるPythonバージョンの自動検出等の機能を持つ。

PyPIのTrusted Publishing(OpenID Connect)を使用する場合は、MATURIN_PYPI_TOKEN を削除し、id-token: write パーミッションを追加することで対応できる。

5.2 CI設定ファイルの自動生成#

maturin generate-ci コマンドにより、推奨構成のGitHub Actions設定ファイルを自動生成できる。

mkdir -p .github/workflows
maturin generate-ci github --platform linux musllinux windows macos \
  --pytest --zig > .github/workflows/CI.yml

6. 結論#

Maturinは、RustのビルドシステムであるCargoとPythonパッケージングエコシステムを統合するビルドツールである。出力先制御(-o)、sdist生成(--sdist)、フィーチャーフラグ(-F)、バインディング種別(-b)、インタープリタ指定(-i-f)、プラットフォーム互換性(--compatibility)、ストリップ(--strip)、Zigリンカ(--zig)等の多様なオプション群が、現代的なマルチプラットフォーム配布の要求に応えるための柔軟な制御を可能にしている。

開発フェーズにおける develop コマンドによる高速イテレーションと、配布フェーズにおける build / publish コマンドによるマルチプラットフォームWheel生成という2フェーズの設計は、Rustの型安全性とPythonの利便性を組み合わせたソフトウェア開発における一貫したワークフローを提供する。


付録A:CLIオプション完全一覧表#

A.1 maturin build オプション一覧#

オプション短縮形引数デフォルト説明
--release-roffCargoリリースモード(最適化ビルド)
--jobs-j<N>CPUコア数並列ジョブ数
--profile<PROFILE-NAME>Cargoビルドプロファイル指定
--target<TRIPLE>ホスト環境ターゲットアーキテクチャ(Rustトリプル)
--target-dir<DIRECTORY>target/生成物の出力ディレクトリ
--out-o<OUT>target/wheels/Wheelの保存先ディレクトリ
--features-F<FEATURES>有効化するCargoフィーチャー(カンマ/スペース区切り)
--all-featuresoffすべてのフィーチャーを有効化
--no-default-featuresoffデフォルトフィーチャーを無効化
--bindings-b<BINDINGS>自動検出バインディング種別(pyo3, cffi, uniffi, bin
--interpreter-i[<INTERPRETER>...]ビルド対象Pythonインタープリタ
--find-interpreter-foffインタープリタを自動検出
--sdistoffソース配布パッケージ(.tar.gz)も生成
--compatibility[<compatibility>...]自動判定プラットフォームタグ制御
--auditwheel<AUDITWHEEL>repairmanylinuxコンプライアンス動作(repair/check/skip
--zigoffZigリンカを使用してmanylinux互換ビルド
--stripoffバイナリからデバッグシンボルを除去
--include-debuginfooffデバッグ情報ファイルをWheelに同梱
--manifest-path-m<PATH>自動探索Cargo.toml のパス
--frozenoffCargo.lock とキャッシュが最新であることを要求
--lockedoffCargo.lock が最新であることを要求
--offlineoffネットワークアクセスなしでビルド
--quiet-qoffCargoログを非表示
--verbose-voff詳細ログ(-vv でさらに詳細)
--color<WHEN>auto出力カラーリング(auto/always/never
--compression-method<METHOD>deflatedWheel ZIP圧縮方式(deflated/stored/zstd
--timings=<FMTS>ビルドタイミング出力(html/json、unstable)
--config<KEY=VALUE>Cargo設定値のオーバーライド(unstable)

A.2 maturin develop 固有オプション一覧#

オプション短縮形引数デフォルト説明
--extras-E<EXTRAS>オプション依存グループの有効化
--skip-installoffインストールをスキップし共有ライブラリのみ生成
--uvoffpip の代わりに uv を使用してインストール
--pip-path<PIP_PATH>自動探索使用する pip の実行ファイルパス

A.3 主要コマンドと用途の早見表#

コマンド用途
maturin developデバッグビルドを仮想環境にインストール
maturin develop --releaseリリースビルドを仮想環境にインストール
maturin develop --extras=testオプション依存込みで仮想環境にインストール
maturin build --releaseリリースビルドのWheelを生成
maturin build --release -o dist/出力先を dist/ に指定してWheel生成
maturin build --release --sdistWheelとsdistをともにP生成
maturin build --release -F "my_feature"フィーチャー有効化してWheel生成
maturin build --release -b cffiCFFFIバインディングでWheel生成
maturin build --release --find-interpreter全Pythonバージョン向けWheel一括生成
maturin build --release --stripシンボル除去して最小サイズのWheel生成
maturin build --target aarch64-unknown-linux-gnu --zigAArch64向けmanylinux互換クロスコンパイル
maturin build --release --compatibility manylinux2014manylinux2014タグを明示してWheel生成
maturin sdist -o dist/sdistのみ単独で生成
maturin publishビルドしてPyPIに公開
maturin generate-ci githubGitHub Actions CI設定ファイルを自動生成

付録B:Maturinプロジェクトの設定および実装例#

B.1 設定ファイル#

# pyproject.toml
[build-system]
requires = ["maturin>=1.0,<2.0"]
build-backend = "maturin"

[project]
name = "example_module"
version = "0.1.0"
requires-python = ">=3.8"
classifiers = [
    "Programming Language :: Rust",
    "Programming Language :: Python :: Implementation :: CPython",
    "Programming Language :: Python :: Implementation :: PyPy",
]

[tool.maturin]
features = ["pyo3/abi3-py38"]
# Cargo.toml
[package]
name = "example_module"
version = "0.1.0"
edition = "2021"

[lib]
name = "example_module"
crate-type = ["cdylib"]

[dependencies]
pyo3 = { version = "0.21", features = ["extension-module"] }

B.2 Rustソースコード#

// src/lib.rs
use pyo3::prelude::*;

/// Pythonから呼び出し可能な関数の定義
#[pyfunction]
fn compute_value(x: f64) -> PyResult<f64> {
    Ok(x * 2.0)
}

/// Pythonモジュールのエントリポイント
#[pymodule]
fn example_module(_py: Python, m: &PyModule) -> PyResult<()> {
    m.add_function(wrap_pyfunction!(compute_value, m)?)?;
    Ok(())
}

参考文献#

  1. PyO3/maturin — GitHub リポジトリ https://github.com/PyO3/maturin

  2. Maturin User Guide(公式ドキュメント) https://www.maturin.rs/

  3. Maturin User Guide — Distribution https://www.maturin.rs/distribution.html

  4. Maturin User Guide — Local Development https://www.maturin.rs/local_development.html

  5. Maturin User Guide — Configuration https://www.maturin.rs/config

  6. maturin — PyPI https://pypi.org/project/maturin/

  7. PyO3 User Guide — Building and Distribution https://pyo3.rs/latest/building-and-distribution

  8. PEP 517 — A build-system independent format for source trees https://peps.python.org/pep-0517/

  9. PEP 518 — Specifying Minimum Build System Requirements for Python Projects https://peps.python.org/pep-0518/

  10. PEP 621 — Storing project metadata in pyproject.toml https://peps.python.org/pep-0621/

  11. PEP 599 — The manylinux2014 Platform Tag https://peps.python.org/pep-0599/

  12. Andrew Kelley — “zig cc: a Powerful Drop-In Replacement for GCC/Clang” https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html

  13. Rust Blog — “Increasing glibc and Linux kernel requirements” https://blog.rust-lang.org/2022/08/01/Increasing-glibc-kernel-requirements.html

RustによるPython拡張モジュール構築ツール「Maturin」の技術仕様とビルド・デプロイメントパイプラインの解説
https://ss0832.github.io/posts/20260407_maturin-build-pipeline/
Author
ss0832
Published at
2026-04-07
License
CC BY-NC-SA 4.0

Related Posts

Python静的解析・フォーマッタツール Ruff の設計思想と技術的特性に関する包括的解説
2026-01-12
Rust言語によって記述された高速なPython静的解析ツールおよびフォーマッタである Ruff について、その歴史的背景、内部アーキテクチャ、主要な機能、および開発フローにおける実利的な側面を詳細に解説する。従来のツールチェーンとの比較や設定のベストプラクティスについても言及する。
冗長内部座標系における自動化された鞍点探索アルゴリズムの数理と実装:Sellaについて
2026-01-25
ポテンシャルエネルギー曲面(PES)上の一次鞍点(遷移状態)を探索するための新規アルゴリズム『Sella』について、その数学的基礎、座標変換の幾何学的処理、およびNull-Space SQPを用いた制約付き最適化手法を詳述する。特に、自動化を阻害する直線結合角問題へのダミー原子を用いた対処法と、反復的ヘシアン対角化による計算コスト削減効果に焦点を当てる。
s軌道-p軌道間重なり積分の数理的導出と実装
2026-01-23
Cartesian GTOを用いたs軌道とp軌道(px, py, pz)間の重なり積分について、ガウス積定理の微分形を用いた導出と、3成分を一度に計算するPython実装を解説する。
p軌道-p軌道間重なり積分の数理的導出と実装
2026-01-23
Cartesian GTOを用いたp軌道同士(計9成分)の重なり積分について、ガウス積定理に基づく統一的な数式表現と、厳密な正規化処理を含むPython実装を解説する。
s軌道-d軌道間重なり積分の数理的導出と実装
2026-01-23
Cartesian GTOを用いたs軌道とd軌道(6成分:xx, yy, zz, xy, xz, yz)間の重なり積分について、統一的な数式表現とPython実装を解説する。
短縮GTO(Contracted GTO)間重なり積分の数理と実装"
2026-01-23
原子軌道計算の実用標準である短縮ガウス型軌道(CGTO)について、その定義、プリミティブGTOへの展開による重なり積分の導出、およびSTO-3G基底系を例としたPython実装を記述する。