Intro

Ranvier is a Typed Decision Engine.

It is not a web framework. It is a structural layer that keeps execution explicit, inspectable, and safe to refactor. Your Rust code becomes a circuit. Ranvier turns on the lights.

Axon Schematic Outcome Ingress/Egress

Execution is explicit

Axon chains describe the exact order of decisions. No hidden middleware and no implicit control flow.

Structure is inspectable

Schematic captures nodes and edges without executing the runtime. It is the artifact for diff, validation, and visualization.

Control flow is data

Outcome models branch, jump, emit, and fault as explicit results. You can audit and replay decisions without guessing.

The Contract

Core stays protocol-agnostic. HTTP lives in the adapter layer.
Schematic never executes runtime logic. It is read/validate/visualize only.
Flat API is allowed, but it must not hide complexity. We isolate it.
If you are looking for a batteries-included framework, Ranvier is not it. If you want your runtime logic to remain visible and verifiable, you are in the right place.
use ranvier::prelude::*;

let axon = Axon::<(), (), anyhow::Error>::new("Hello")
    .then(Hello);

Ranvier::http()
    .bind("127.0.0.1:3000")
    .route("/", axon)
    .run(())
    .await?;