Crate actaeon[−][src]
Expand description
Actaeon
Distributed PubSub and messaging protocol for decentralized real time applications.
The most important struct for the API is the Interface
, which can be
used for sending and receiving messages as well as subscribing to a
Topic
. From there most interactions with other users can be done
through a Topic
.
Example:
use actaeon::{
config::Config,
node::{Center, ToAddress},
Interface,
};
use sodiumoxide::crypto::box_;
fn main() {
let config = Config::new(20, 1, 100, "example.com".to_string(), 4242);
let (_, secret) = box_::gen_keypair();
let center = Center::new(secret, String::from("127.0.0.1"), 1235);
let interface = Interface::new(config, center).unwrap();
let mut topic = interface.subscribe(&"example".to_string().to_address());
let _ = topic.broadcast("hello world".as_bytes().to_vec());
}
Re-exports
Modules
Bucket
Config
Error
TCP
Messages
Node
Records
Router
Signaling
Switch
Topics
Transactions
Utility
Structs
Starting the switch will create both Interface and Switch objects. The Interface will be passed up and to the user / instance. From there the user can interact (receive messages) with the listener.
Enums
Each module that wants to interact with the Switch has a custom enum of possible cases. This is to avoid having to handle a lot of impossible cases in the Switch loop.