7 releases

Uses new Rust 2024

new 0.0.6-rc.1 Apr 26, 2025
0.0.5 Mar 8, 2025
0.0.5-rc.1 Feb 14, 2025
0.0.4 Dec 7, 2024
0.0.4-rc.1 Jul 27, 2024

#318 in Robotics

Download history 2/week @ 2025-01-08 3/week @ 2025-02-05 127/week @ 2025-02-12 9/week @ 2025-02-19 24/week @ 2025-02-26 129/week @ 2025-03-05 19/week @ 2025-03-12 13/week @ 2025-04-16 118/week @ 2025-04-23

131 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

~27–70MB
~1M SLoC