はじめに
七尾百合子さん、お誕生日 191日目 おめでとうございます! nikkieです。
毎週水曜のリリース報告エントリです1。
目次
sampleproject-rs 0.2.0 & 0.2.1
https://pypi.org/project/sampleproject-rs/0.2.1/
v0.2.0 から本家 sampleproject 同様にadd_one()
をサポートしました。
% uv run --python 3.13 --with sampleproject-rs sample Call your main application code here
% uv run --python 3.13 --with sampleproject-rs python >>> from sample import simple >>> simple.add_one(42) 43
途中経過はこちら
sample.simple.add_one
のようにネストさせるには、細かくsuper::
する必要がありました。
https://github.com/ftnext/sampleproject-rs/commit/ed9fdba35ac3f437f10de534d807de368b7832fc
Rust と Python でテストも書いて自信を持てています。
2つのバージョンの違いは PyPI にアップロードしたファイル数です。
maturin build
の--interpreter
を指定して大量にアップロードした 0.2.0(bdist 44ファイル)。
指定した 3.10, 3.11, 3.12, 3.13 それぞれに最適化したビルドになるので数が多いという理解です。
代わりに pyo3 の features に abi3-py310 を指定した 0.2.1(bdist 14ファイル)。
Python 3.10 以上でビルドが共通になるようで、数が抑えられました(理解あいまい)
GitHub 上の Copilot (GPT-5) に URL 指定で Actions の出力を渡して、PyO3 のエラーに関して知恵を借りました。
めちゃめちゃ賢かったですが、ABIとか何の話をしているのかちんぷんかんぷんなのでもっと私の理解を深めたいです。
今週のリリースは以上です
終わりに
Rust プログラムから作ったバイナリを Python パッケージとして配布するだけでなく、Rust プログラムで書いた Python モジュール(PyO3 利用)を PyPI でパッケージとして配布する方法も分かりました。
Rust 製の Python パッケージを作れる側に行きたい私としては、PyPI での配布について多くを素振りできたと感じています!
来週は静香ちゃんです!
https://lantis.jp/imas/ssr/
- 始めたきっかけは765プロです(頭ミリオン) 2025年4月2日(水)のリリース - nikkie-ftnextの日記↩