o8vm
Choreographic Programming in Rust
Hibana-QUIC: QUIC in Rust using choreographic programming, no_std and no_alloc
Hibana: Protocol Choreography for Rust
Show HN: AI agent framework where dangerous actions are structurally unreachable
https://github.com/hibanaworks/hibana-agent
Hi HN —Today's AI agent guardrails are almost entirely post-hoc. The model proposes an action, then a policy layer tries to reject it. Prompt injection, jailbreaks, and edge cases mean the dangerous action is always one bypass away.hibana-agent takes a different approach: dangerous actions (purchases, payments, infra changes) are not "blocked" — they are structurally unreachable. The execution...
https://github.com/hibanaworks/hibana-agent
From an AMPST perspective, the key idea is this: one global choreography is projected into role-local protocols (Agent/Browser/Human), with affine progression (each step is consumed exactly once).
const LOOP_BODY: g::Program<LoopBodySteps> = g::seq(
g::send::<Agent, Browser, BrowserAction, 0>(),
g::send::<Browser, Agent, BrowserObservation, 0>(),
);
const ADD_TO_CART_APPROVAL: g::Program<AddToCartApprovalSteps> = g::seq(
g::send::<Agent, Human, RequestApproval, 0>(),
g::seq(
g::send::<Human, Agent, ApprovalDecision, 0>(),
g::route::<0, _>(
g::route_chain::<0, AddToCartArm>(ADD_TO_CART_ARM)
.and::<SkipAddToCartArm>(SKIP_ADD_TO_CART_ARM),
),
),
);
So even AI-agent behavior is confined by protocol structure: illegal traces (skip/reorder/reuse/wrong branch) are unrepresentable, not merely blocked by ad hoc runtime checks.As another example, we’re also preparing `hibana-quic` (a QUIC implementation built with Hibana) for public release. It already passes interop tests with neqo.
Current status: we’re actively preparing `hibana-quic` for publication, and it is already passing interop tests with neqo. Please wait a little longer for the public release. Thanks for your patience.
Show HN: Hibana – choreography-first protocol safety for Rust
Hi HN — I just open-sourced Hibana and hibana-agent.Hibana is an Affine MultiParty Session Types (MPST) runtime for Rust.It targets protocol drift in distributed systems. Instead of maintaining separate hand-written state machines in each component, you define interaction once as a global choreography and project role-local behavior at compile time. At runtime, only valid protocol transitions...
You’re absolutely right that I led with terminology instead of value. A simpler way to describe it is:
Hibana helps prevent protocol drift bugs in distributed systems. You describe the interaction once as a global choreography, and each role gets a projected local API. Because steps are affine (consumed once), invalid transitions like skipping, reusing, or taking the wrong branch are rejected by the type/protocol model.
So the practical goal is fewer hidden state-machine bugs, with one global source of truth for interaction order.
I appreciate the suggestion, and I’ll explain it this way in the next write-up.
Protocol Validation with Affine MPST in Rust
As one concrete example, hibana-agent( https://github.com/hibanaworks/hibana-agent ) applies the same model to constrain AI-agent action flow with session-typed branching.
Show HN: Hibana – An Affine MPST Runtime for Rust
Hi HN — I just open-sourced Hibana and hibana-agent.Hibana is an Affine MPST runtime for Rust: - global choreography -> compile-time projection -> role-local execution - core is no_std / no_alloc-oriented - deterministic route/offer/recv/decode modelRepo: https://github.com/hibanaworks/hibana Demo (AI control with session-typed branching): https://github.com/hibanaworks/hibana-agent