HIBANA Mark

HIBANA

Affine Multiparty Session Types for Rust

Const projection • Affine Cursors • EPF VM • Deterministic observability

HIBANA

Affine Multiparty Session Types for Rust

Const projection • Affine Cursors • EPF VM • Deterministic observability

What if your compiler could prove your protocol is deadlock-free?

Hibana is a #![no_std] multiparty session types engine that brings established type-theoretic guarantees into everyday systems. Write your global choreography once, project it at compile time, and get affine cursors that make protocol violations impossible.

// 1. Global Choreography
const PING_PONG: g::Program<_> = g::seq(
    g::send::<Client, Server, Ping>(),
    g::send::<Server, Client, Pong>(),
);

// 2. Compile-Time Projection
const CLIENT: g::RoleProgram<0, _> = g::project(&PING_PONG);

// 3. Affine Execution
// Compiler enforces protocol compliance.
let (client, _) = client.flow::<Ping>()?.send(&42u32).await?;
let (client, pong) = client.recv::<Pong>().await?;

Const Projection

g::Program builds protocols with g::send / seq / par / route. Pure const fn composition, macro-free.

Affine Cursors

Every step is a linear resource. You cannot skip a step, reuse a step, or drop a session mid-flight without explicit handling.

Transport Agnostic

BindingSlot trait infers transport actions from choreography metadata. Zero boilerplate.

Embedded First

Rust 2024 · #![no_std] · no_alloc — runs on bare metal with deterministic resource usage.

Deterministic Observability

Dual-ring tap architecture prevents Observer Effect. Deterministic replay and debugging.

Effect Policy Filter

eBPF-inspired bytecode VM. Hot-reloadable dynamic policies.

Crates

hibana-quic Beta

IETF QUIC. Interops with Quinn, s2n-quic, quiche.

hibana-h3 Beta

HTTP/3 + QPACK + route handlers.

HibanaOS (Coming Soon)

A #![no_std] unikernel with type-safe async executor and WASI host, driven entirely by Hibana session protocols.

Get Started

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

GitHub · Discussions · Issues