#kademlia #networking #pubsub #decentralized #signaling-server

actaeon

受Kademlia启发的去中心化PubSub和消息协议

5个版本

0.2.1 2021年11月10日
0.2.0 2021年11月9日
0.1.3 2021年11月2日
0.1.2 2021年10月31日
0.1.1 2021年10月31日

#9 in #kademlia

自定义许可证

205KB
4K SLoC

Actaeon

去中心化实时应用的分布式PubSub和消息协议。

此库为用户提供了一个简单易用、易于理解的API,用于基于Kademlia论文的自动管理去中心化消息系统。通过直接和间接的TCP消息,可以实现快速可靠的消息交换。

使用库在特定主题上广播消息的简单示例

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"), 1234);

    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());
}

还有一些未解决的问题

  • 信号处理和多个信号服务器的错误处理。
  • 为话题添加内部可变性,用户不需要将它们声明为可变的。
  • 处理崩溃的线程。

依赖项

~21MB
~154K SLoC