jonmo জন্ম
in bengali, jonmo means "birth"
jonmo provides a declarative way to define reactive signal chains in Bevy. Signals originate from sources (like component changes, resource changes, or specific entities) and can be transformed (map), combined (combine_with), or filtered (dedupe).
Internally, jonmo builds and maintains a dependency graph of Bevy systems. Each frame, the JonmoPlugin traverses this graph starting from the root systems. It pipes the output (Some(O)) of a parent system as the input (In<O>) to its children. This traversal continues down each branch until a system returns None (often represented by the TERMINATE constant), which halts propagation along that specific path for the current frame.
usage
jonmo allows you to build signal chains declaratively using the Signal builder.
declarative api
Start a chain using Signal::from_* methods, chain transformations with .map(), and activate the chain with .register().
use *;
use *;
;
See the declarative example for a runnable version.
imperative api
For more control or integration with existing systems, you can use the lower-level imperative functions:
register_signal: Registers a single system node.mark_signal_root: Marks a system as a starting point for propagation.pipe_signal: Connects the output of one system to the input of another.combine_signal: Creates the necessary nodes to combine two signal branches.
use *;
use *; // Import imperative functions too
;
See the imperative example for a runnable version.
Bevy compatibility
| bevy | jonmo |
|---|---|
| 0.15 | 0.1 |
license
All code in this repository is dual-licensed under either:
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
at your option.
your contributions
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.