소개
Ranvier는 Typed Decision Engine입니다.
Ranvier는 웹 프레임워크가 아닙니다. 실행을 명시적으로 드러내고, 구조를 검증 가능하게 유지하는 구조 레이어입니다. Rust 코드는 회로가 되고, Ranvier는 그 회로를 밝힙니다.
Axon Schematic Outcome Ingress/Egress
실행은 명시적
Axon 체인은 결정 흐름의 순서를 그대로 드러냅니다. 숨겨진 미들웨어 체인은 없습니다.
구조는 검증 가능
Schematic은 런타임을 실행하지 않고 구조를 추출합니다. diff/검증/시각화의 기준이 됩니다.
흐름은 데이터
Outcome은 분기, 점프, emit, fault를 데이터로 기록합니다. 흐름은 언제나 명시적으로 남습니다.
계약(Contract)
코어는 프로토콜에 독립적입니다. HTTP는 어댑터 계층에 존재합니다.
Schematic은 실행하지 않습니다. 읽기/검증/시각화만 담당합니다.
Flat API는 허용되지만, 복잡성을 숨기지 않도록 격리합니다.
리소스는 명시적으로
Ranvier는 전역 미들웨어로 상태를 숨기지 않습니다. 공유 리소스는 타입 기반 Bus 또는 리소스 번들로 주입하며, Transition이 필요할 때만 읽습니다.
Bus는 타입 기반이며 선택적으로 사용합니다. 자동 주입은 없습니다.
리소스는 Ingress에서 명시적으로 연결됩니다.
Capability 규칙은 코어 변경 없이도 적용 가능합니다.
Ingress / Egress 경계
Ingress는 요청을 입력 상태로 변환합니다.
Axon이 결정 흐름을 실행합니다.
Egress는 Outcome을 응답으로 변환합니다.
Schematic Diff & Validation
Schematic은 정적 아티팩트입니다. 런타임 전 CI에서 회로를 diff하고 검증할 수 있습니다.
신뢰 경계 & LLM
AI는 구조를 제안할 수 있지만 런타임 로직을 직접 변경하지 않습니다. 모든 변경은 리뷰와 검증을 거칩니다.
모든 것을 자동으로 해주는 프레임워크를 원한다면 Ranvier는 적합하지 않습니다.
하지만 실행을 읽을 수 있고 검증 가능한 구조를 원한다면, 올바른 선택입니다.
use ranvier::prelude::*;
let axon = Axon::<(), (), anyhow::Error>::new("Hello")
.then(Hello);
Ranvier::http()
.bind("127.0.0.1:3000")
.route("/", axon)
.run(())
.await?;