このプロジェクトについて
running-processは、Rustで書かれ、ファーストクラスのPythonバインディングを備えたクロスプラットフォームのオペレーティングシステム・プロセスランタイムです。プロセスの生成、パイプ、PTY、プロセスツリー、封じ込め、観測、デタッチドデーモン、ブローカー経由の長時間稼働サービスに対する統一的な抽象化を提供します。
このライブラリは、プラットフォーム間でOSプロセスの挙動が非ポータブルであるという問題に対処します。WindowsのJob ObjectsとConPTY、Unixのプロセスグループとシグナル、Linuxのptraceトレース、名前付きパイプ、子プロセスの回収、端末制御は、それぞれライフタイムと失敗のルールが異なります。running-processはこれらをRustコアにカプセル化し、Rust APIとPythonらしい同期/asyncioサーフェスの両方を通じて公開します。
主な機能は次のとおりです。
- コマンドとストリーム: stdout/stderrの同時キャプチャ、上限付き待機、型付き終了、テキストとバイトの処理。
- 対話型端末: Windows (ConPTY)、Linux、macOS上のネイティブPTY。expectルール、入力リレー、リサイズ、割り込み、アイドル検出を備えます。
- プロセスツリーのライフタイム: 封じ込め、再帰的なterminate/kill、子孫のクリーンアップ、発信元タグ付け、ゾンビを認識した追跡。
- 観測: ライフサイクルイベント、プロセスウォッチ、ptraceによる正確なLinuxツリーのトレース、スタックキャプチャ、明示的な損失記録。
- 耐久性のある実行: デタッチ起動、デーモンのライフサイクル、ブローカー交渉、セッションリレー、ヘルスプローブ、管理診断。
- 運用者向けツール: 監視CLI、クリーンアップマニフェスト、端末機能検出、プロセスダッシュボード。
Pythonパッケージは別個の再実装ではありません。そのバインディングは、ネイティブの利用者が使うのと同じRustプロセスエンジンを呼び出します。subprocess_run、RunningProcess、InteractiveProcess、ContainedProcessGroupといった基本APIは、ブローカーやデーモンのセットアップなしで動作します。デーモン/ブローカーフレームワークは、監視されたクロスセッションのプロセス管理のために利用できます。
Windows 10では、このライブラリはモダンな端末挙動のためにConPTYサイドカーを透過的に取得・キャッシュし、SHA-256検証とkernel32へのオフラインフォールバックを備えます。端末グラフィックス機能検出 (Sixel、Kitty、iTerm2) はRustの呼び出し元で利用できます。
CLIラッパーは、非アクティブおよびウォールクロックのタイムアウト、ツリー終了、リーク検出を備えた監視付きコマンド実行を提供します。クリーンアップユーティリティは、休止中のデーモンルートを剪定するためにブローカーキャッシュマニフェストを読み取ります。
このライブラリはSoldrで実証済みであり、Soldrはこれをプロセス生成の境界およびデーモン/ブローカーの基盤として使用しています。PyPIとCrates.ioで配布され、CIはLinux、macOS、Windowsをカバーしています。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.