#events #publisher #publish #nanoservices #tokio #publish-event

macro nan-serve-publish-event

Tokio event publisher for nanoservices

1 unstable release

new 0.1.0 Jan 5, 2025

#452 in Procedural macros

Download history 143/week @ 2025-01-01

143 downloads per month
Used in nanoservices-utils

MIT license

3KB

Nanoservices event publisher

A basic proc macro crate for publishing events. We can subscribe to events with the following code:

#[derive(Serialize, Deserialize, Debug)]
struct Two;

#[subscribe_to_event]
async fn test2(two: Two) {
    println!("calling from test2 function with: {:?}", two);
}

This generates the code for a standard function under the name as it is defined as, and a slightly mangled function which is registered with the event subscriber. If an event is then published with the Two then all functions subscribed to the Two event will be called with the instance of the Two struct. We can then publish the event with the following code:

let two = Two {};
publish_event!(two);

The test2 function will then be called with the Two struct instance. This is a basic event publisher and subscriber system for nanoservices.

Dependencies

~225–670KB
~16K SLoC