#selium #message-broker #messaging #platform #dependent #build-time #composable

构建 selium-common

selium-common 是 Selium 的依赖库。请勿直接使用。

1 个不稳定版本

0.1.0 2023 年 8 月 14 日

#461构建工具

MPL-2.0 许可证

16KB
279

Selium

Crates.io MPL2 licensed Build Status Audit Status

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 是一个代理消息平台,这意味着它有一个客户端和服务器组件。查看 clientserver 库以获取更多详细信息。

我们还有一个 维基,其中包含了所有这些信息以及更多内容。我们的 入门指南 将在 5 分钟或更短的时间内引导您设置一个安全、可工作的 Selium 平台。

为 Selium 贡献

我们非常欢迎您的帮助!如果您有一个想要的功能,请首先提出一个问题,以免失望。虽然我们很高兴合并与我们的路线图相符的贡献,但您的功能可能并不完全适合。最好先检查一下。

依赖项

~6–18MB
~199K SLoC