Show HN: GoPOSIX – GoネイティブのPOSIXユーザーランド、BusyBoxとの互換性約97%
GoPOSIXは、Goで書かれたシングルバイナリのPOSIXユーザーランドで、BusyBoxのテストスイートの96.6%(591/612)に合格しています。AIエージェント開発アプローチを用いて約3週間で開発され、システムユーティリティにおけるGoの可能性を示しています。
GoPOSIXは、Go言語で完全に実装されたPOSIXユーザーランドであり、単一のバイナリとして提供され、BusyBoxとの高い互換性を目指しています。BusyBoxのテストスイートにある612のテストのうち591に合格し、互換性は96.6%に達しています。
開発の動機は、作者が「ハーネスエンジニアリング」(Harness Engineering)の実験と「エージェント開発」(agentic development)スキルの向上を望んだことにあります。2025年にGoを学んだ後、大規模言語モデル(LLM)が出力のフォーマットに多くの時間を浪費していることに気づき、スクリプトやツールでJSON出力を使い始めました。これらのアイデアが結実し、GoでPOSIXユーティリティを完全実装し、JSON出力とGo SDKを提供してBusyBoxとベンチマークするプロジェクトが生まれました。
DeepSeek-v4-proモデル(75%割引)とpi.devプラットフォームを活用し、約3週間で開発が完了しました。作者は、プロジェクトの90%はAIが行い、残り10%は方向性の指示だったと述べています。これは、POSIXユーティリティが本質的にテキスト変換器であり、明確に定義された契約(「一つのことをうまくやる」)に従っていることを示しています。
パフォーマンス面では、GoPOSIXの呼び出しレイテンシは60マイクロ秒で、BusyBoxの680マイクロ秒(fork+exec経由)を大幅に下回ります。100MBファイルに対するgrepでは0.16秒(BusyBoxは0.86秒)でした。ただし、バイナリサイズは10MBと、BusyBoxの800KBの12.5倍です。コールドスタート時間は7ミリ秒です。
作者は、このプロジェクトが成功したのはBusyBoxのテストスイートのおかげであると明言しています。また、Mvdan Shellやgoawkなどのプロジェクトにも感謝の意を表しています。
GoPOSIXはGitHubで公開されており、CLIとDockerイメージ、Go SDKのドキュメントが提供されています。現在までに8つのリリースがあり、最新はv1.0.10です。コードの構成はGoが77.6%、Shellスクリプトが21.1%、残りはMakefileとDockerfileです。
このプロジェクトは、AI支援による開発の典型的な例であり、大規模言語モデルを活用して複雑なシステムツールを迅速に構築する可能性を示しています。バイナリサイズは大きいものの、パフォーマンスが重要なシナリオでは顕著な利点を示しています。