Introduction
What is Blazen and why use it for AI workflows
What is Blazen?
Blazen is an event-driven AI workflow engine written in Rust with native Python and Node.js bindings. It gives you a structured, type-safe way to build complex LLM-powered workflows that can pause, resume, branch, and compose together into larger pipelines — and it now ships native media pipelines alongside the LLM surface, covering 3D mesh extraction, voice conversion, TTS engines, audio codecs, and music generation out of the box.
Why Blazen?
Building production AI workflows means dealing with unreliable providers, long-running tasks, human review gates, and the need to orchestrate multiple models across a single pipeline. Blazen solves these problems at the engine level:
- Type-safe events — Every piece of data flowing through your workflow is validated at compile time in Rust and at runtime in Python and Node.js.
- 15+ LLM providers — OpenAI, Anthropic, Google, Mistral, Groq, and more, with a unified interface and automatic fallback.
- Multi-workflow pipelines — Chain workflows together with conditional routing, fan-out, and aggregation.
- Pause and resume — Persist workflow state to disk or a database and pick up exactly where you left off.
- Human-in-the-loop — Built-in support for approval gates, review steps, and manual intervention points.
Architecture Overview
Blazen is built around three core abstractions. Events carry typed data between processing nodes. Steps consume events, perform work (calling an LLM, transforming data, waiting for human input), and emit new events. Workflows wire Steps together into a directed graph. When you need to go bigger, Pipelines compose multiple Workflows into an end-to-end system with shared context and cross-workflow routing.
Core Crates
The engine is split into focused crates, each with a single responsibility:
- blazen-events — Event definitions, serialization, and type registry
- blazen-core — Workflow runtime, step execution, and scheduling
- blazen-macros — Derive macros for events, steps, and configuration
- blazen-llm — Unified LLM client with provider adapters and retry logic
- blazen-pipeline — Multi-workflow orchestration and routing
- blazen-persist — State serialization, checkpointing, and recovery
- blazen-prompts — Prompt templating, variable injection, and versioning
- blazen-3d — TripoSR image-to-mesh plus a Compat3D HTTP proxy for remote 3D backends
- blazen-audio-tts — Text-to-speech engines: Kokoro, VibeVoice, Qwen3-TTS, Bark, F5-TTS, and Piper
- blazen-audio-stt — Speech-to-text via Whisper (both whisper.cpp and Candle backends)
- blazen-audio-vc — RVC-based voice conversion
- blazen-audio-codec — Neural audio codecs: EnCodec, DAC, and SNAC
- blazen-audio-music — Music and ambient audio generation: MusicGen, AudioGen, Stable Audio
- blazen-image-diffusion — Local diffusion image generation
- blazen-video-core — Temporal attention primitives for video models
Polyglot by Design
Blazen exposes the same concepts across every binding surface, so you write natural code in your language of choice while the Rust engine handles the heavy lifting:
- Rust — native crates, the source of truth for the engine
- Python — PyO3 bindings (
blazen-py) - Node.js — napi-rs bindings (
blazen-node) - WASM — wasm-bindgen SDK (
blazen-wasm-sdk) for the browser - Go, Swift, Kotlin — UniFFI-generated bindings sharing a single
blazen-uniffisurface - Ruby — a hand-written cbindgen C ABI (
blazen-cabi) wrapped byFFI::Library, with full callback andFiber.schedulersupport
License
Blazen is open source under the MPL-2.0 license.