Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Barbacane Documentation

Barbacane is a spec-driven API gateway. Define your API using OpenAPI, add Barbacane extensions for routing and middleware, compile to an artifact, and deploy.

Why Barbacane?

  • Spec-first: Your OpenAPI spec is the source of truth
  • Compile-time validation: Catch misconfigurations before deployment
  • Plugin architecture: Extend with WASM plugins for auth, rate limiting, transforms
  • Observable: Prometheus metrics, structured JSON logging, distributed tracing with OTLP export
  • European-made: Built in Europe, hosted on EU infrastructure

Quick Start

# Build from source (crates.io publishing planned for v1.0)
git clone https://github.com/barbacane/barbacane.git
cd barbacane && cargo build --release

# Add x-barbacane-dispatch to your OpenAPI spec
# Compile
./target/release/barbacane compile --spec api.yaml --output api.bca

# Run
./target/release/barbacane serve --artifact api.bca --listen 0.0.0.0:8080

Documentation

User Guide

Reference

Contributing

Supported Spec Versions

FormatVersionStatus
OpenAPI3.0.xSupported
OpenAPI3.1.xSupported
OpenAPI3.2.xSupported (draft)
AsyncAPI3.0.xSupported

AsyncAPI Support

Barbacane supports AsyncAPI 3.x for event-driven APIs. AsyncAPI send operations are accessible via HTTP POST requests, enabling a sync-to-async bridge pattern where HTTP clients can publish messages to Kafka or NATS brokers.

License

Apache 2.0 - See LICENSE