hermes

Last updated:

0 purchases

hermes Image
hermes Images
Add to Cart

Description:

hermes

Messaging library for Dart. Nimble and efficient like the messenger of the Gods.
What is it #
Hermes is a simple but powerful way to send and receive messages across a Dart App.
For those who are experienced Publish/subscribe messaging and event subscriptions, Hermes's mechanism will look very familiar.
One cool thing about Hermes is the ability to setup a pub\sub architecture with only two lines of code.
Divine.
Hermes encapsulates the idea of event or signal (concept found in other messaging or eventing systems)
with the loose concept of Message.
You can send a message from any position in your code. Hermes handles the task of carrying the message to all recipients that
are waiting for the message.
In the same way you can send a Message from anywhere, You are able to receive a message sent from anywhere too.
For Hermes any object can act as a Message. Primitives, Functions, Built-in Types, Custom Types...Anything.
Hermes doesn't have the concept of registration. Everything is handled transparently. The moment your code wants to fetch a message, it automatically registers itself to receive it.
How to Use it #
To send a message just call the send function.
Hermes.send<T>(message);
// or
Hermes.send(T message);
copied to clipboard
To receive a message just call the fetch function.
Hermes.fetch<T>(message, (T message){ });
// or
Hermes.fetch(T message, (T message){ });
copied to clipboard
Note that fetch acts like a transparent registration mechanism: when You call fetch the specified handler function will be called whenever a new message of type T arrives.
From version 3.0.0 fetch returns a FetchOperation instance. this object can be used to 'unfetch' and release resources:
Hermes.unfetch(FetchOperation op);
copied to clipboard
A simple usage example:
import 'package:hermes/hermes.dart';

class Message {
final String content;
Message(this.content);
}

main() {
// registers a callback that is called when the message is received.
var fetchOp = Hermes.fetch((Message message) {
print("Message received. it says: '${message.content}'");
});

// send a message
Hermes.send(Message("Hello World!"));

// ... some code here...

// unfetch the message if not required anymore.
Hermes.unfetch(fetchOp);
}

copied to clipboard
Remarks #

Hermes.send and Hermes.fetch are synchronous functions, but the message handler can be async.
Hermes.unfetch is an async function.

Features and bugs #
Please file feature requests and bugs at the issue tracker.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.