eventbuzz
A safe, fast, event publish/subscribe system, where asynchronous events are implemented based on tokio, and inspired
by Spring events.
1. Usage
Add this to your Cargo.toml:
[]
= "0.1"
# And
# If necessary
= "${version}"
= "${version}"
2. APIs
2.1. Sync
use eventbuzz::sync::prelude::*;
2.1.1. Event
use *;
// ...
// ----------------------------------------------------------------
2.1.2. Listener
;
// ----------------------------------------------------------------
// HelloEvent -> This target event of Listener.
2.1.3. Publish
// 1.Build an instance of Eventbus
// -> Maybe -> Eventbus::new() | unsupported now.
let mut eventbus: Eventbus = builder
/* config or init | Unsupported now */
.build;
// 2.Register
// -> Auto register unsupported now.
eventbus.register_listener;
eventbus.register_listener;
// 3.Publish event.
eventbus.publish_event;
eventbus.publish_event;
2.2. Async
use eventbuzz::asynchronous::prelude::*;
2.2.1. Event
use *;
// ...
// ----------------------------------------------------------------
2.2.2. Listener
use
#[async_trait]
;
// ----------------------------------------------------------------
// Notes: #[async_trait]
// HelloEvent -> This target event of Listener.
2.2.3. Publish
// #[tokio::test(flavor = "multi_thread")]
// 1.Build an instance of Eventbus
// -> Maybe -> Eventbus::new() | unsupported now.
let mut eventbus: AsyncEventbus = builder
/* config or init | Unsupported now */
.build;
// 2.Register
// -> Auto register unsupported now.
eventbus.register_listener.await;
eventbus.register_listener.await;
// 3.Publish event.
eventbus.publish_event.await;
eventbus.publish_event.await;
2.3.4. tokio::spawn
let mut eventbus: AsyncEventbus = builder
/* config or init | Unsupported now */
.build;
eventbus.register_listener.await;
eventbus.register_listener.await;
// Spawn
spawn.await.unwrap;
// Arc<AsyncEventbus>
let mut eventbus: AsyncEventbus = builder
/* config or init | Unsupported now */
.build;
eventbus.register_listener.await;
eventbus.register_listener.await;
let eventbus_arc = new;
let eventbus_wrapped_1 = clone;
spawn.await.unwrap;
let eventbus_wrapped_2 = clone;
spawn.await.unwrap;