**Show HN:**  
*Hibana – Rust 用アフィン MPST ランタイム*

---

Hibana は、Rust でアフィン型制約を用いて *Multiparty Session Types (MPST)* を実装した軽量ランタイムです。通信プロトコルが静的に検証されるため、デッドロックやメッセージ順序の不一致などのバグを減らしながら、同時実行プログラムを書くことができます。

**主な特徴**

- **アフィン型付け** – 各チャンネル値は一度しか使用されないよう保証し、安全な所有権移譲を確保します。  
- **ゼロコスト抽象化** – Rust 標準ライブラリの上に構築されており、追加のランタイムオーバーヘッドはありません。  
- **プロトコル仕様** – グローバル通信パターンを記述する簡潔な DSL を提供します。  
- **自動コード生成** – プロトコル定義から型安全なクライアント/サーバースタブを生成します。

**はじめに**

```bash
cargo add hibana
```

シンプルなチャットプロトコルを定義してみましょう:

```rust
use hibana::prelude::*;

#[derive(Debug, HibanaProtocol)]
pub enum Chat {
    Send(String),
    Receive(String),
}
```

参加者を生成し、同時に実行します。コンパイラがプロトコルを強制するため、順序外や重複したメッセージ送信は防止されます。

**Hibana を選ぶ理由**

- **安全性** – Rust の型システムがチャンネルの正しい使用を保証します。  
- **パフォーマンス** – 標準的な所有権意味論以外にランタイムチェックはありません。  
- **使いやすさ** – 宣言型プロトコル定義と自動生成コードでボイラープレートを削減します。

---

詳細については、GitHub リポジトリや付随するドキュメントをご覧ください。

2026/02/07 0:09

**Show HN:** *Hibana – Rust 用アフィン MPST ランタイム* --- Hibana は、Rust でアフィン型制約を用いて *Multiparty Session Types (MPST)* を実装した軽量ランタイムです。通信プロトコルが静的に検証されるため、デッドロックやメッセージ順序の不一致などのバグを減らしながら、同時実行プログラムを書くことができます。 **主な特徴** - **アフィン型付け** – 各チャンネル値は一度しか使用されないよう保証し、安全な所有権移譲を確保します。 - **ゼロコスト抽象化** – Rust 標準ライブラリの上に構築されており、追加のランタイムオーバーヘッドはありません。 - **プロトコル仕様** – グローバル通信パターンを記述する簡潔な DSL を提供します。 - **自動コード生成** – プロトコル定義から型安全なクライアント/サーバースタブを生成します。 **はじめに** ```bash cargo add hibana ``` シンプルなチャットプロトコルを定義してみましょう: ```rust use hibana::prelude::*; #[derive(Debug, HibanaProtocol)] pub enum Chat { Send(String), Receive(String), } ``` 参加者を生成し、同時に実行します。コンパイラがプロトコルを強制するため、順序外や重複したメッセージ送信は防止されます。 **Hibana を選ぶ理由** - **安全性** – Rust の型システムがチャンネルの正しい使用を保証します。 - **パフォーマンス** – 標準的な所有権意味論以外にランタイムチェックはありません。 - **使いやすさ** – 宣言型プロトコル定義と自動生成コードでボイラープレートを削減します。 --- 詳細については、GitHub リポジトリや付随するドキュメントをご覧ください。

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

要約

Japanese Translation:


Summary

Hibanaは、マルチパーティセッションタイプ(MPST)をコンパイル時にデッドロックのない通信保証へと変換するRustライブラリです。

#![no_std]
#![no_alloc]
といった組込みターゲットでも動作します。このライブラリは、プロトコルステップの線形使用を強制する単純なマーカーであるアフィンカーソルを利用し、各メッセージが一度だけ送受信されることを保証します。プロトコルはconst関数
g::send
seq
par
route
)として記述され、マクロは使用せず全体のチューログリズムを表現します。ライブラリはこれらをコンパイル時にロール固有のコードへ投影し、
BindingSlot
と決定的なデュアルリングタップを介してトランスポートロジックとプロトコル規則を分離し、観測性を提供します。

MPST理論を基盤に、HibanaはeBPFスタイルのバイトコード仮想マシンを追加し、効果ポリシーをフィルタリングし、ホットリロード可能な動的ポリシーをサポートします。このクレートは「Preview」モードにあり、コア概念は安定していますが、より多くのトランスポートアダプターやデバッグツールが追加されるにつれてAPIが進化する可能性があります。

PING_PONG
プログラム例では、グローバルチューログリズムをクライアントロールへ投影し、アフィンカーソル(
send
recv
)で実行する方法を示しています。Rust開発者、特に組込みシステムを対象とする方々には、Hibanaはコンパイル時のプロトコル安全性、予測可能なリソース使用、および堅牢な観測性を提供するCargo依存関係として有用です。

本文

もしコンパイラがプロトコルのデッドロックフリーであることを証明できたら?

Hibana は Rust 用の affine MPST(多相セッション型)エンジンです。

#![no_std]
/
#![no_alloc]
を対象に設計されており、
1 回だけグローバルなコレオグラフィを記述し、コンパイル時にプロジェクションを行い、構築上で不正なプロトコル進行を防ぐ affine カーソルを実行します。

ステータス: Preview – コアアイデアは安定していますが、API は変更される可能性があります。


1. グローバル・コレオグラフィ

const PING_PONG: g::Program<_> = g::seq(
    g::send::<Client, Server, Ping>(),
    g::send::<Server, Client, Pong>(),
);

2. コンパイル時プロジェクション

const CLIENT: g::RoleProgram<0, _> = g::project(&PING_PONG);

3. Affine 実行

コンパイラがプロトコル準拠を強制します。

let (client, _)   = client.flow::<Ping>()?.send(&42u32).await?;
let (client, pong) = client.recv::<Pong>().await?;

主な特徴

  • Const Projection
    g::Program
    g::send
    seq
    par
    route
    でプロトコルを構築します。純粋な const‑fn 合成;マクロは不要です。
  • Affine Cursors – 各ステップが線形リソースです。セッションをスキップ・再利用・途中放棄することは、明示的に処理しない限りできません。
  • Transport Agnostic
    BindingSlot
    とトランスポート API はワイヤ I/O をローカルコレオグラフィコードから切り離します。
  • Embedded First – Rust 2024、
    #![no_std]
    、no‑alloc コアで、コアプロトコルパスのリソース使用を予測可能にします。
  • Deterministic Observability – デュアルリングタップ構成は観測者への影響を最小化しつつ、再現性/デバッグを確保します。
  • Effect Policy Filter – eBPF に触発されたバイトコード VM;ホットリロード可能な動的ポリシー。

クレートとデモ

  • hibana
    がコアクレートです。
  • それ以外は実用性を証明する公開デモです。

はじめに

[dependencies]
hibana = { git = "https://github.com/hibanaworks/hibana" }

GitHub • Discussions • Issues

同じ日のほかのニュース

一覧に戻る →

2026/02/12 1:21

フッ素石(Fluorite)― Flutterと完全に統合されたコンソールレベルのゲームエンジン

## 日本語訳: **改善された要約** Fluoriteは、Flutterと完全に統合された最初のコンソールグレードゲームエンジンであり、開発者がDartでゲームロジックをすべて記述しながら、高性能な3Dグラフィックスを提供できます。そのコアは、低価格/組み込みハードウェアで高速に動作するC++で書かれたデータ指向のEntity‑Component System(ECS)であり、GoogleのFilamentレンダラーとVulkanを併用して物理的に正確な照明、ポストプロセッシング効果、およびカスタムシェーダーを実現しています。Flutterとの統合によりホットリロードが可能となり、シーンの変更は数フレーム以内に表示されるため、ゲームメカニクス、アセット、コードの迅速な反復が可能です。ゲームロジックは馴染み深い高水準Dart APIを介して公開され、FluoriteViewウィジェットは複数の同時3Dシーンをホストでき、ゲームエンティティとUIウィジェット間で状態を共有します。アーティストはBlenderでタッチトリガーゾーンを定義し、インタラクティブなゲームプレイ用にonClickイベントを発火させることができます。将来のリリースでは機能追加が計画されており、エンジンの能力を拡張し、インディー開発スタジオやホビイストの参入障壁を低減します。

2026/02/12 3:06

ネットニュースワイヤー、開業23周年を迎える --- (Note: The translation keeps the length and conveys that NetNewsWire is turning 23 years old.)

## Japanese Translation: > **概要:** > NetNewsWireは23周年を迎え、歴史的なバージョン 1.0 のリリースを祝うとともに、将来のアップデートに向けた明確で段階的なロードマップを提示しています。バージョン 7.0 は2月11日にリリースされ、即時修正パッチ 7.0.1 が回帰や直ちに必要な調整を解決します。チームはまだ多くのバグ、技術的負債、および仕上げ作業に直面していますが、昨年のブレント氏の退職によってこれらの課題に取り組むリソースが確保されました。 > > 今後の展望として、バージョン 7.1 はデバイス間で記事を一貫して同期させるための修正に注力し、7.2 は柔軟性を保ちつつユーザー体験の仕上げやタスクの組み合わせを追加する可能性があります。まだ 7.3 の具体的な計画は存在せず、今後の作業は 7.1/7.2 の成果と Apple の WWDC で発表される新しいプラットフォーム機能(例:タッチスクリーン Mac、折りたたみ iPhone、新しい Swift 機能)に依存します。マイルストーンチケットは流動的であり、追加や削除がいつでも行われる可能性があります。 > > ユーザーにとっては、より信頼性の高いパフォーマンス、スムーズなデバイス間同期、および時折の UI 改善が期待できます。この周年記念は、競争の激しい RSS リーダー市場で継続的に NetNewsWire を改善し続ける自信を示す前向きな祝賀として提示されています。

2026/02/12 3:23

「Claude のコードが簡略化されています」

## Japanese Translation: --- ## Summary Claude Code **version 2.1.20** は、ファイル読み込みと検索パターンをすべて単一のサマリー行(「Read 3 files.」「Searched for 1 pattern.」)に置き換えます。この変更により、デフォルト出力から明示的なパスやパターンが削除され、重要なデバッグ情報が隠れているとユーザーからの苦情が増えました。 ユーザーは現在 **verbose mode(詳細モード)** を有効にするか(サブエージェントトランスクリプト全体、フック出力、ファイル全内容をダンプ)、または verbose mode 内で **Ctrl+O** を押して欠落した詳細情報を取得しなければなりません。しかし、verbose mode 自体は複数のリリースで冗長性を削減するために縮小されており、それでも多くのエージェントからの大きなテキストブロックが生成され、行単位の簡潔なログではなくなっています。 この変更はほとんどのユーザーのノイズを減らす目的で導入されたため、Anthropic の GitHub コメントでの回答は「verbose mode を試しましたか?」というものが主流でした。ユーザーからはよりシンプルなトグルを求める声もあり、多くの開発者が **version 2.1.19** に戻すか、verbose mode を必要とせずに詳細ファイルパスや検索パターンを復元する簡易的なブール設定フラグを呼びかけています。 そのようなトグルが追加されれば、開発者はクリーンなデフォルトビューと詳細なデバッグビューの間を素早く切り替えられ、生産性を向上させつつインターフェースを整理されたままに保てます。

**Show HN:** *Hibana – Rust 用アフィン MPST ランタイム* --- Hibana は、Rust でアフィン型制約を用いて *Multiparty Session Types (MPST)* を実装した軽量ランタイムです。通信プロトコルが静的に検証されるため、デッドロックやメッセージ順序の不一致などのバグを減らしながら、同時実行プログラムを書くことができます。 **主な特徴** - **アフィン型付け** – 各チャンネル値は一度しか使用されないよう保証し、安全な所有権移譲を確保します。 - **ゼロコスト抽象化** – Rust 標準ライブラリの上に構築されており、追加のランタイムオーバーヘッドはありません。 - **プロトコル仕様** – グローバル通信パターンを記述する簡潔な DSL を提供します。 - **自動コード生成** – プロトコル定義から型安全なクライアント/サーバースタブを生成します。 **はじめに** ```bash cargo add hibana ``` シンプルなチャットプロトコルを定義してみましょう: ```rust use hibana::prelude::*; #[derive(Debug, HibanaProtocol)] pub enum Chat { Send(String), Receive(String), } ``` 参加者を生成し、同時に実行します。コンパイラがプロトコルを強制するため、順序外や重複したメッセージ送信は防止されます。 **Hibana を選ぶ理由** - **安全性** – Rust の型システムがチャンネルの正しい使用を保証します。 - **パフォーマンス** – 標準的な所有権意味論以外にランタイムチェックはありません。 - **使いやすさ** – 宣言型プロトコル定義と自動生成コードでボイラープレートを削減します。 --- 詳細については、GitHub リポジトリや付随するドキュメントをご覧ください。 | そっか~ニュース