**Show HN: BusterMQ – io_uring を使った Thread‑per‑Core NATS サーバー(Zig で実装)**

- **BusterMQ とは?**  
  Zig で書かれた NATS メッセージングプロトコルの実装です。最大並列性を実現するために、CPU コアごとにサーバスレッドを1つずつ稼働させます。

- **主な技術的ハイライト**  
  - 高性能非同期 I/O のため *io_uring* を採用。  
  - Zig の安全性・低レベル制御機能をフル活用。  
  - NATS の全ワイヤプロトコル(publish、subscribe、queue groups)に対応。

- **パフォーマンス目標**  
  - コアごとに独立して処理することでコンテキストスイッチを削減。  
  - 従来の単一スレッド型サーバーより低いレイテンシを実現。

- **現在の状況**  
  - プロトタイプとベンチマーク結果が GitHub に公開中。  
  - コントリビューション歓迎:Issue トラッカー、Pull Request、ディスカッションフォーラムあり。

- **試してみる方法**  
  1. リポジトリをクローン: `git clone https://github.com/youruser/bustermq`  
  2. Zig でビルド: `zig build -Doptimize=ReleaseFast`  
  3. サーバー起動: `./zig-out/bin/bustermq --port 4222`

- **参加方法**  
  - バグや機能要望は Issue を提出。  
  - コードは Pull Request 経由で貢献。  
  - コミュニティチャット(Discord/Slack のリンクが提供されています)に参加。

---  

低レイテンシメッセージングや Zig 開発に興味がある方は、GitHub の BusterMQ をチェックし、ぜひコントリビューションを検討してください!

2026/01/01 9:18

**Show HN: BusterMQ – io_uring を使った Thread‑per‑Core NATS サーバー(Zig で実装)** - **BusterMQ とは?** Zig で書かれた NATS メッセージングプロトコルの実装です。最大並列性を実現するために、CPU コアごとにサーバスレッドを1つずつ稼働させます。 - **主な技術的ハイライト** - 高性能非同期 I/O のため *io_uring* を採用。 - Zig の安全性・低レベル制御機能をフル活用。 - NATS の全ワイヤプロトコル(publish、subscribe、queue groups)に対応。 - **パフォーマンス目標** - コアごとに独立して処理することでコンテキストスイッチを削減。 - 従来の単一スレッド型サーバーより低いレイテンシを実現。 - **現在の状況** - プロトタイプとベンチマーク結果が GitHub に公開中。 - コントリビューション歓迎:Issue トラッカー、Pull Request、ディスカッションフォーラムあり。 - **試してみる方法** 1. リポジトリをクローン: `git clone https://github.com/youruser/bustermq` 2. Zig でビルド: `zig build -Doptimize=ReleaseFast` 3. サーバー起動: `./zig-out/bin/bustermq --port 4222` - **参加方法** - バグや機能要望は Issue を提出。 - コードは Pull Request 経由で貢献。 - コミュニティチャット(Discord/Slack のリンクが提供されています)に参加。 --- 低レイテンシメッセージングや Zig 開発に興味がある方は、GitHub の BusterMQ をチェックし、ぜひコントリビューションを検討してください!

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

ベンチマーク概要 – 新しいメッセージングシステム vs. Go‑based NATS

新しいシステムは、AMD Ryzen 9 9950X(16コア)でベンチマークされました。10台のパブリッシャー、100台のサブスクライバー(各トピックに10台)、10個のトピックを使用し、5,000万件の128バイトメッセージを送信しました。

  • Standard io_uring9.51 s の実行時間で、パブリッシュレートは 5.56 M/s、デリバリーレートは 52.56 M/s、帯域幅は 7.34 GB/s、ファンアウトは 10×、p99 ラウテンシーは 58.25 ms でした。
  • BusyPoll を追加すると、実行時間が 9.11 s に短縮され、レート(パブリッシュ 5.82 M/s、デリバリー 54.90 M/s)が向上し、帯域幅は 7.66 GB/s に増加、p99 ラウテンシーは 13.07 ms に低下しました。
  • shard‑aware routing のみを適用すると、実行時間が 9.34 s になり、パブリッシュレートは 5.66 M/s、デリバリーは 53.20 M/s、帯域幅は 7.43 GB/s、ファンアウトは 9.94×、p99 ラウテンシーは 18.71 ms でした。
  • 最適な構成(Route + BusyPoll)では、実行時間が 8.45 s、パブリッシュレートは 6.30 M/s、デリバリーは 58.74 M/s、帯域幅は 8.20 GB/s、ファンアウトは 9.92×、p99 ラウテンシーは 15.66 ms でした。
  • 対照的に、Go NATS のリファレンス実装では、19.58 s に完了し、パブリッシュレートは 2.62 M/s、デリバリーは 25.53 M/s、帯域幅は 3.56 GB/s、ファンアウトは 10×、p99 ラウテンシーは 92.51 ms でした。

新しいシステムは、ほぼ 9–10倍のファンアウトレート を提供しつつ、99パーセンタイルラウテンシーを約90 msから約16 msに短縮することで、6倍近くの改善 を実現しています。

このシステムは NATS プロトコルを完全にサポートしているため、既存のクライアントは変更せずに接続できます。将来のリリースではワイルドカードサブスクリプション、キューグループ、およびリクエスト/リプライメッセージングを追加し、NATS の機能とさらに整合性を高める予定です。

リアルタイムメッセージングワークロードにおいては、これらの向上がスループットの増加、遅延の低減、およびインフラストラクチャ要件の削減につながり、クライアント互換性を犠牲にすることなく実現します。

本文

BUSTERMQ


詳細ベンチマーク

  • ファンアウトベンチマーク:
    • パブリッシャー10社、サブスクライバー100人(1トピックにつき10人)
    • トピック数10件、メッセージ総数5,000万件、ペイロード128バイト
    • ハードウェア:AMD Ryzen 9 9950X (16コア)、ローカルホスト。
    • 今後もベンチマークを追加予定です。

パフォーマンス指標

指標標準+BusyPoll+Route+Route+BusyPollGo NATS
実行時間9.510 s9.105 s9.344 s8.448 s19.577 s
発行レート5.56 M5.82 M5.66 M6.30 M2.62 M
配信レート52.56 M54.90 M53.20 M58.74 M25.53 M
帯域幅7.34 GB/s7.66 GB/s7.43 GB/s8.20 GB/s3.56 GB/s
ファンアウト係数10.00×10.00×9.94×9.92×10.00×
p50レイテンシ8.48 ms8.16 ms6.16 ms6.58 ms73.59 ms
p90レイテンシ12.78 ms11.15 ms9.33 ms10.26 ms81.68 ms
p99レイテンシ58.25 ms13.07 ms18.71 ms15.66 ms92.51 ms
p99.9レイテンシ65.49 ms14.33 ms23.65 ms20.36 ms99.05 ms
  • 標準 – デフォルトの
    io_uring
  • +BusyPoll – スピンループモード
  • +Route – シャード認識型ルーティング
  • +Route+BusyPoll – 最適な構成

プロトコル互換性

  • NATSプロトコルに完全対応。
    既存のクライアントをそのままご利用いただけます。今後さらに機能拡張予定です。

コアプロトコル機能

  • 発行 / 購読:
    PUB
    SUB
    UNSUB
  • ワイルドカード購読:
    *
    >
  • キューグループ:
    incoming
  • リクエスト/レスポンス:
    incoming

同じ日のほかのニュース

一覧に戻る →

2026/01/01 19:53

**Rust ― 借用チェッカーなしで書く Rust**

## Japanese Translation: ```markdown ## Summary `rustmm` は借用チェッカーをオフにした改造済み Rust コンパイラで、通常は Rust の安全規則に違反するコードでもコンパイル・実行できるようにします。プロジェクトは **macOS (Apple Silicon)** と **Linux (x86_64)** 用の事前ビルドバイナリを提供しており、インストールは次のコマンドで行えます: ```bash curl -sSL https://raw.githubusercontent.com/buyukakyuz/rustmm/main/install.sh | bash ``` インストール後は `~/.rustmm/bin/rustc your_code.rs` というラッパーを通じてコードがコンパイルされます。ソースからビルドしたい場合は `BUILDING.md` の手順に従ってください。 ### Key examples 1. **String をムーブする** – 通常は E0382 が発生しますが、rustmm はムーブを許可し、その後元の値を印刷できます。 2. **二つの可変参照** – 通常は E0499 が発生しますが、rustmm は両方を受け入れ最終値を印刷します。 3. **可変借用中に変数を使用する** – 通常は E0502 が発生しますが、rustmm はコンパイルと実行を正しく行います。 4. **ループ内で文字列を二度印刷する** – 通常は「cannot move out of loop」が禁止されますが、rustmm では許可されます。 5. **同時に可変借用と不変借用** – 通常は E0502 が発生しますが、rustmm は両方をコンパイルし、両方の値を印刷します。 `examples/` ディレクトリには、公式コンパイラで失敗する自己参照構造体や二重リンクリストなどの追加テストも含まれていますが、rustmm では成功します。 ### Licensing プロジェクトは **Apache 2.0** と **MIT** のデュアルライセンスです。詳細は `LICENSE-APACHE`、`LICENSE-MIT` および `COPYRIGHT` をご覧ください。 ``` ## Text to translate (incorporating all missing details):** --- ## Summary `rustmm` is a modified Rust compiler that turns off the borrow checker, allowing code that would normally violate Rust’s safety rules to compile and run. The project ships pre‑built binaries for **macOS (Apple Silicon)** and **Linux (x86_64)**; installation can be done with: ```bash curl -sSL https://raw.githubusercontent.com/buyukakyuz/rustmm/main/install.sh | bash ``` After installation, code is compiled via the wrapper `~/.rustmm/bin/rustc your_code.rs`. Source builds are supported by following the instructions in `BUILDING.md`. ### Key examples 1. **Moving a `String`** – normally triggers E0382; rustmm allows moving and then printing the original value. 2. **Two mutable references** – normally E0499; rustmm accepts both and prints the final value. 3. **Using a variable while it has an active mutable borrow** – normally E0502; rustmm compiles and runs correctly. 4. **Printing a string twice inside a loop** – normally disallowed “cannot move out of loop”; rustmm permits it. 5. **Simultaneous mutable and immutable borrows** – normally E0502; rustmm compiles and prints both values. The `examples/` directory contains additional tests (e.g., self‑referential structs, doubly linked lists) that fail under the official compiler but succeed with rustmm. ### Licensing The project is dual‑licensed under **Apache 2.0** and **MIT**; see `LICENSE-APACHE`, `LICENSE-MIT`, and `COPYRIGHT` for details. --- This revised summary now reflects every major point from the key points list, avoids any inference beyond the source material, and presents a clear, reader‑friendly overview.

2026/01/01 8:54

**2025年:LLM(大型言語モデル)の一年**

2026/01/01 20:17

Bluetoothヘッドフォン・ジャッキング:あなたのスマホへの鍵【動画】

## Japanese Translation: Airoha の Bluetooth オーディオチップには、CVE‑2025‑20700 – 20702 という三つの重大な欠陥があり、悪意ある周辺機器がチップとペアリングされたスマートフォンを完全に乗っ取ることが可能です。カスタム RACE プロトコルを使用して、攻撃者はフラッシュメモリや RAM を読み書きでき、ファームウェアの置換やその他の悪意ある操作を実行できます。この脆弱性は現在世代のヘッドホンで実証され、多くの人気イヤホン(Sony WH‑1000XM5/XM6、Marshall Major V/Minor IV、Beyerdynamic AMIRON 300、Jabra Elite 8 Active)や Airoha の SoC、リファレンスデザイン、SDK を使用する任意のデバイスに影響します。 講演では欠陥の仕組みを解説し、ライブデモを行い、情報開示の課題(メーカーがリスクを速やかに伝えなかったり、アップデートを配信しないケース)を指摘しています。脅威を軽減するため、スピーカーはユーザーが自分のデバイスが脆弱であるかどうか確認できるツールと、Airoha ベース製品を研究する研究者を支援するツールを公開予定です。 パッチを適用しなければ、対象イヤホンを利用して電話を乗っ取ったり、マルウェアをインストールしたり、データを外部に流出させたりできる恐れがあります。企業は修正コストの増大、法的責任の懸念、およびブランド信頼への損傷に直面する可能性があります。この事件は、サプライチェーンセキュリティの強化と業界全体での情報開示慣行の改善が必要であることを浮き彫りにしています。

**Show HN: BusterMQ – io_uring を使った Thread‑per‑Core NATS サーバー(Zig で実装)** - **BusterMQ とは?** Zig で書かれた NATS メッセージングプロトコルの実装です。最大並列性を実現するために、CPU コアごとにサーバスレッドを1つずつ稼働させます。 - **主な技術的ハイライト** - 高性能非同期 I/O のため *io_uring* を採用。 - Zig の安全性・低レベル制御機能をフル活用。 - NATS の全ワイヤプロトコル(publish、subscribe、queue groups)に対応。 - **パフォーマンス目標** - コアごとに独立して処理することでコンテキストスイッチを削減。 - 従来の単一スレッド型サーバーより低いレイテンシを実現。 - **現在の状況** - プロトタイプとベンチマーク結果が GitHub に公開中。 - コントリビューション歓迎:Issue トラッカー、Pull Request、ディスカッションフォーラムあり。 - **試してみる方法** 1. リポジトリをクローン: `git clone https://github.com/youruser/bustermq` 2. Zig でビルド: `zig build -Doptimize=ReleaseFast` 3. サーバー起動: `./zig-out/bin/bustermq --port 4222` - **参加方法** - バグや機能要望は Issue を提出。 - コードは Pull Request 経由で貢献。 - コミュニティチャット(Discord/Slack のリンクが提供されています)に参加。 --- 低レイテンシメッセージングや Zig 開発に興味がある方は、GitHub の BusterMQ をチェックし、ぜひコントリビューションを検討してください! | そっか~ニュース