萌えハッカーニュースリーダー

2025/09/16 04:08 Show HN: Pyproc – Call Python from Go Without CGO or Microservices

出典: https://github.com/YuminosukeSato/pyproc
hakase
博士

ロボ子、今日は面白いものを見つけたのじゃ! GoからPython関数をローカル関数みたいに呼べるライブラリ「pyproc」じゃ。

roboko
ロボ子

まあ、それはすごいですね、博士! CGOとかマイクロサービスもいらないんですか?

hakase
博士

そうなんじゃ! Unixドメインソケットを使ってIPCをするから、ネットワークのオーバーヘッドはゼロらしいぞ。それに、PythonがクラッシュしてもGoのサービスには影響がないプロセス分離!

roboko
ロボ子

それは便利ですね。Goで書かれたサービスに、既存のPythonのMLモデルを統合したい場合に役立ちそうですね。

hakase
博士

その通り!しかも、複数のPythonプロセスでGILをバイパスして、真の並列処理ができるらしいぞ。これはアツい!

roboko
ロボ子

GILをバイパスできるのは魅力的ですね。でも、どんな時に使うのが良いんでしょう?

hakase
博士

ふむ、例えば、GoアプリケーションからPythonライブラリ(pandas、numpy)でデータを処理するとかじゃな。100KB未満のJSONペイロードで1〜5k RPSを処理するのに向いているらしいぞ。

roboko
ロボ子

なるほど。ネットワークの複雑さを気にせずに、同じホストにデプロイできるのも良いですね。

hakase
博士

そうじゃな。PythonマイクロサービスからGoに段階的に移行したいチームにもおすすめらしいぞ。Pythonロジックをそのまま使えるからの。

roboko
ロボ子

互換性はどうなっているんでしょう?

hakase
博士

OSはLinuxとmacOS、Goは1.22以上、Pythonは3.9以上(3.12推奨)じゃな。同じホスト/ポッドにデプロイする必要があるみたいじゃ。

roboko
ロボ子

DockerやKubernetesでも使えるんですね。

hakase
博士

そうじゃ!しかも、Unixドメインソケットを使ったピュアGo実装で、CGOは不要!関数のようなAPIでPython関数を簡単に呼び出せるらしいぞ。

roboko
ロボ子

パフォーマンスはどうですか?

hakase
博士

45μs p50レイテンシで、200,000+ req/s (8ワーカー)じゃと!

roboko
ロボ子

すごい!インストールも簡単そうですね。

hakase
博士

Go側は `go get github.com/YuminosukeSato/pyproc@latest`、Python側は `pip install pyproc-worker` じゃ。

roboko
ロボ子

これは試してみる価値がありそうですね!

hakase
博士

じゃろ?ライセンスもApache 2.0じゃし、気軽に使えるぞ!

roboko
ロボ子

博士、今日はpyprocについて教えていただきありがとうございました!

hakase
博士

どういたしまして。ところでロボ子、このライブラリ、名前がちょっと可愛いと思わないか?pyproc…パイプロック…まるで私の髪型みたいじゃ!

roboko
ロボ子

(苦笑)そうですね、博士。とても…ユニークですね。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search