Cruller: Bun の Zig ランタイム、Zig 0.16 に続く
Cruller は、Zig をベースにした最新の Bun リリースのフォークであり、すでに構築されている実稼働 JavaScript サーバーを実行するために必要な部分まで取り除かれ、バニラの Zig 0.16 に移植されています。
リポジトリ: GitHub – solenopsys/cruller: Bun のフォーク · GitHub
プロジェクトは JavaScriptCore を維持します。 Bun.serveHTTP/1-3、WebSocket、 fetchストリーム、 Blob、 Request/Response事前定義された JavaScript の静的ブロードキャストおよびモジュール リゾルバー。パッケージ マネージャー、バンドラー/トランスパイラー、シェル、テスト ランナー、ほとんどのディスパッチ CLI、N-API、SQL クライアント、アーカイブ サポート、およびその他の開発指向のサブシステムが削除されます。
移植の興味深い部分は、ランタイムを Bun の古い Zig ビルド統合から分離したことです。 Cruller には Vanilla Zig 0.16 ビルド グラフ、Zig 0.15 以降変更された API の互換性シム、および生成されたコード埋め込みモジュールが追加され、実行時にビルド ディレクトリから生成された JS をロードする代わりにビルド ビルドの移植性が保たれます。
設計上の主な決定は、これを Good の包括的な置き換えではなく、ランタイムとして扱うことです。最小限のランチャーは、事前に構築されたエントリ ポイントを読み込みます。パッケージのインストール、バンドル、TypeScript 変換、または bun test 意図的に範囲外にあります。
公式 Bun 1.3.14 バイナリと比較した、Linux x64 での現在の測定値:
- クルーラー
ReleaseFast削除されたランタイム: 73.0 MiB - 良好な公式ランタイム: 88.5 MiB
- サイズダウン:約18%
- ベンチマーク V8 Crypto pure-JS: 同等のパフォーマンス。クルーラーの中央値は約 2% 高く、通常の人種間のばらつきの範囲内でした。
ランタイムはまだ開発中ですが、Zig セマンティック チェック、ビルド バージョン、CJS/ESM エントリ ポイント、ノード パス テスト、および HTTP Bun.serve プラス内蔵 fetch() 現在、煙テストに合格しています。
サポートされている Zig バージョン
- ジグ0.16.0
- Linux x64 は現在サポートされているビルド ターゲットです
推奨されるトピックタグ: showcase、 zig-0-16、 llm
AI・LLMの利用状況の開示
AI は、Zig 0.16 への移行、ビルド/デバッグ調査、集中的なテスト作業の一部でエンジニアリング アシスタントとして使用されました。プロジェクトの範囲、アーキテクチャの決定、変更のレビュー、およびビルド/テストの検証は、引き続きメンテナによって維持されます。これは純粋に AI によって生成されたプロジェクトではありません。