#actor-model #reactor #model #actor #deterministic #concurrency #macro-derive

macro boomerang_derive

Derive macro parsing, analysis and code generation for Boomerang

2 unstable releases

0.2.0 Apr 10, 2023
0.1.0 Apr 1, 2020

#30 in #reactor

35 downloads per month
Used in boomerang

MIT/Apache

58KB
1.5K SLoC

Boomerang

crates.io MIT/Apache 2.0 Crates.io Rust API

Rust implementation of the "Reactors" Deterministic Actor Model, described by M. Lohstroh, A. Lee, et al U.C. Berlekely, Link to paper.

Comparison to Lingua-Franca

The Lingua-Franca project (https://github.com/icyphy/lingua-franca/wiki) serves as a point of reference for Boomerang.

The Boomerang scheduler started out as a direct Rust port of the Lingua-Franca Discrete-Event scheduler runtime. Instead of using a distinct "compositional language" like Lingua-Franca, Boomerang leverages the power of Rust derive-macros to directly annotate the Reactor semantics and composition. The resultant DAG is analyzed and used to generate implementation primitives for the Scheduler.

This project is still in the very early stages, but intends to implement as much of the language specification and features from Lingua-Franca as possible.

See also Reactor Cpp

License

Licensed under either of

at your option.

Contribution

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.


lib.rs:

This crate provides Boomerangs' derive macro.

Dependencies

~6MB
~112K SLoC