1 ポイント 投稿者 GN⁺ 2025-01-25 | 1件のコメント | WhatsAppで共有

Bun 1.2 アップデート

  • Bun 1.2 は Node.js 互換性を大幅に改善し、S3 オブジェクトストレージ API と Postgres クライアントを内蔵して提供する。bun install は теперь テキストベースの bun.lock を使用する。Express のパフォーマンスを 3 倍向上させた。

Node.js 互換性

  • Bun は Node.js の代替として設計されており、Node.js テストスイートを実行して互換性を改善している。
  • 内部 API とエラーメッセージの違いを解消し、Node.js モジュールの 90% 以上のテストに合格した。

HTTP/2 サーバーおよびその他のモジュール

  • node:http2 を使用して HTTP/2 サーバーを作成でき、これは gRPC サーバーにも必要となる。
  • node:dgram を使用して UDP ソケットをバインドし、接続できる。
  • node:cluster を使用して複数の Bun インスタンスを生成し、作業を並列処理できる。
  • node:zlib モジュールをネイティブコードで書き直し、パフォーマンスを 2 倍向上させた。

S3 サポート

  • Bun 1.2 は S3 API を内蔵し、ファイルの読み取り、書き込み、削除ができる。
  • Bun の S3 クライアントはネイティブコードで書かれており、Node.js より 5 倍高速である。

Postgres サポート

  • Bun.sql を使用して SQL クエリを実行でき、SQL インジェクションを防止する。
  • Bun.sql は他の Postgres クライアントより 50% 高速である。

パッケージマネージャー

  • bun install は теперь テキストベースの bun.lock を使用し、より高速で、マージコンフリクトを減らす。
  • package.json でコメントと末尾カンマを使用できる。
  • .npmrc ファイルを読み込み、npm レジストリを設定できる。

テストランナー

  • Bun は組み込みのテストランナーを提供し、テストの作成と実行を容易にする。

1件のコメント

 
GN⁺ 2025-01-25
Hacker Newsの意見
  • 一部のユーザーは、外部ライブラリをコアライブラリに含めることに疑問を呈しており、オプションのライブラリとして分けておくほうがよいと考えている

    • ランタイムは標準ライブラリに何かを含める際に非常に慎重であるべきで、すでに含まれているものでもプロジェクトを複雑にしうる
  • Bunを使った体験はとても良かったという意見がある

    • TypeScript、Jest、React、Webpackの設定は煩雑だったが、Bunはシンプルで効果的
    • 外部ライブラリ統合については何とも言えないが、全体としてよく要望されるものに注力している
  • デフォルトの挙動があまりにもマジカルすぎるという意見がある

    • たとえば、S3のファイルをダウンロードせずにユーザーへプリサインドURLを渡すのは驚くべき選択
    • こうした挙動を無効化する方法が明確ではない
  • 組み込み機能が大きな違いを生むという意見がある

    • Web APIがV8やWebKitランタイムに標準で含まれている点が気に入っている
    • ただし、S3はやりすぎかもしれず、SQLドライバは理解できるものの、どこまで含めるべきかは考える必要がある
    • センシティブなAPIを追加することで、セキュリティ上の問題を見落としている可能性がある
  • あるクライアントがBunを本番環境で利用しており、開発体験が非常に良いという意見がある

    • 開発体験は長期的に大きな役割を果たしうる
    • コードベースやプロセスが良くないと、優秀な人材を失う可能性がある
  • Bunの機能一覧が長く、すべてが堅牢でバグがないのか疑わしいという意見がある

    • プロジェクト管理の観点から、S3対応に時間を使うことは理解しがたい
    • Next.jsのユーザーを取り込むことのほうが、より成長につながるはず
  • Bun 1.2でHTML importのサポートが追加された

    • 単一のimport文でフロントエンドのツールチェーン全体を置き換えられる
    • 非常に驚きがあり、素晴らしい機能だという意見がある
  • Bunを初めて使ったとき、とても驚かされたという意見がある

    • WebpackやViteの設定は煩雑だったが、Bunはすぐに動いた
    • 小さなスクリプトのために設定を行う価値はなかったが、Bunは見事に動作した
  • Node.jsの代替としては失敗すると思っていたが、実際にBunを使ってみると満足できたという意見がある

    • TypeScriptとSQLite DBの更新を処理するスタンドアロンのスクリプトを簡単に作れた
    • 新しいJS/TypeScriptプロジェクトでも使ってみたが、すべてが素早く動作した
  • 品質保証プロセスが形式的なものになっているという意見がある

    • ビルドが通っていない状態で変更がマージされ、そのままリリースされたように見える
    • テストが不安定だと、リグレッションの追跡は難しくなるだろう