1 个不稳定版本
0.1.0 | 2023 年 8 月 14 日 |
---|
#461 在 构建工具
16KB
279 行
Selium
Selium 是一个极富开发者友好性、可组合的消息平台,零构建时配置。
入门指南
Hello World
首先,创建一个新的 Cargo 项目
$ cargo new --bin hello-world
$ cd hello-world/
$ cargo add futures
$ cargo add selium
$ cargo add -F macros,rt-multi-thread tokio
将以下代码复制到 hello-world/src/main.rs
use futures::{SinkExt, StreamExt};
use selium::{codecs::StringCodec, prelude::*};
use std::error::Error;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let connection = selium::client()
.with_certificate_authority("server.crt")?
.connect("127.0.0.1:7001")
.await?;
let connection_c = connection.clone();
let mut subscriber = connection
.subscriber("/hello/world")
.with_decoder(StringCodec)
.open()
.await?;
tokio::spawn(async move {
let mut publisher = connection_c
.publisher("/hello/world")
.with_encoder(StringCodec)
.open()
.await
.unwrap();
publisher.send("Hello, world!").await.unwrap();
publisher.finish().await.unwrap();
});
println!("{}", subscriber.next().await.unwrap()?);
Ok(())
}
接下来,打开一个新的终端窗口并启动一个新的 Selium 服务器
$ cargo install selium-server
$ cargo run --bin selium-server -- --bind-addr=127.0.0.1:7001 --self-signed
将证书从 stdout 复制并粘贴到一个名为 hello-world/server.crt
的新文件中。
最后,在我们的原始终端窗口中运行客户端
$ cargo run
下一步
Selium 是一个代理消息平台,这意味着它有一个客户端和服务器组件。查看 client
和 server
库以获取更多详细信息。
我们还有一个 维基,其中包含了所有这些信息以及更多内容。我们的 入门指南 将在 5 分钟或更短的时间内引导您设置一个安全、可工作的 Selium 平台。
为 Selium 贡献
我们非常欢迎您的帮助!如果您有一个想要的功能,请首先提出一个问题,以免失望。虽然我们很高兴合并与我们的路线图相符的贡献,但您的功能可能并不完全适合。最好先检查一下。
依赖项
~6–18MB
~199K SLoC