| Crates.io | taven |
| lib.rs | taven |
| version | 0.1.1 |
| created_at | 2025-10-27 12:32:17.993644+00 |
| updated_at | 2025-10-27 12:32:17.993644+00 |
| description | Taven is a lightweight, modular engine for building control-flow systems β behavior trees, state machines, reactive logic pipelines, or anything that can be expressed as nodes and flows. |
| homepage | https://github.com/jiashumiao/taven |
| repository | https://github.com/jiashumiao/taven |
| max_upload_size | |
| id | 1902842 |
| size | 22,173 |
Currently unavailable
Taven β a composable control-flow engine for Rust
βWhere logic finds its rhythm.β
Taven is a lightweight, modular engine for building control-flow systems β
behavior trees, state machines, reactive logic pipelines, or anything that can
be expressed as nodes and flows.
It provides a clean foundation built around a single idea:
βEvery decision and action can be expressed as a node that drives context.β
π§ Composable Nodes β actions, sequences, selectors, parallels
π§© Unified Trait Model β every node implements Node<Ctx>
βοΈ Custom Contexts β define your own runtime data structure
π§° Extensible Design β build DSLs, editors, or async engines
πΎ Serializable State β via serde and JSON-based Blackboard
π§ͺ Test-Friendly β small, deterministic, and side-effect controlled
| Concept | Description |
|---|---|
| Node | The fundamental executable unit. Implements fn tick(&mut self, ctx: &mut Ctx) -> Status. |
| Status | Represents node execution result: Success, Failure, or Running. |
| Context | Arbitrary user-defined data passed to all nodes. |
| Sequence | Executes nodes in order until one fails. |
| Action | Wraps a closure or function that performs logic on the context. |
| Blackboard | Key-value storage for dynamic runtime data (serde-powered). |
flow! { ... } macro)taven-core crate to crates.ioTaven is built with engineering clarity and compositional elegance in mind:
- Everything is a Node.
- Nodes know nothing about each other.
- Context drives state, not global data.
- The flow is data β not code.
This philosophy makes Taven suitable for AI systems, data pipelines, automation graphs, or any domain requiring controlled, reactive logic execution.
Contributions, ideas, and discussions are welcome! Open an issue or PR to help shape Taven into a robust control-flow framework.
MIT License Β© 2025 β [Your Name or Org] Freely available for personal and commercial use.
Inspired by:
Taven is still young β but itβs already dreaming of elegant logic. βFlow. Compose. Repeat.β