6 releases

Uses new Rust 2024

new 0.0.5 Mar 8, 2025
0.0.5-rc.1 Feb 14, 2025
0.0.4 Dec 7, 2024
0.0.4-rc.3 Oct 13, 2024
0.0.4-rc.1 Jul 27, 2024

#148 in Robotics

Download history 10/week @ 2024-11-18 9/week @ 2024-11-25 137/week @ 2024-12-02 43/week @ 2024-12-09 9/week @ 2024-12-16 1/week @ 2025-01-06 1/week @ 2025-01-13 3/week @ 2025-02-03 110/week @ 2025-02-10 24/week @ 2025-02-17 14/week @ 2025-02-24 115/week @ 2025-03-03

263 downloads per month
Used in 6 crates (5 directly)

MIT/Apache

99KB
2.5K SLoC

beet_flow

Beet Flow is an ECS control flow library, built with Bevy Observers. Being ECS first gives Beet a high level of flexibility and modularity.

Currently implemented paradigms:

Hello World

A demonstration of a Sequence control flow common in behavior trees

Using BeetDebugPlugin will log the name of each action as it is triggered.

use bevy::prelude::*;
use beet_flow::prelude::*;

let mut app = App::new();
app
	.add_plugins((
		BeetFlowPlugin::default(),
		BeetDebugPlugin::default()
	))
	.world_mut()
  .spawn((
		Name::new("My Behavior"), 
		Sequence
	))
		.with_child((
			Name::new("Hello"),
			ReturnWith(RunResult::Success),
		))
		.with_child((
			Name::new("World"),
			ReturnWith(RunResult::Success),
		))
		.trigger(OnRun::local());
app.world_mut().flush();

TODO

  • When we get OnMutate observers, they should probably replace most OnInsert observers we're using

Dependencies

~22–63MB
~1M SLoC