3个版本 (破坏性更新)

0.3.0 2024年7月18日
0.2.0 2024年5月23日
0.1.0 2024年5月22日

#341 in 异步

Download history • Rust 包仓库 311/week @ 2024-05-19 • Rust 包仓库 12/week @ 2024-05-26 • Rust 包仓库 7/week @ 2024-06-02 • Rust 包仓库 1/week @ 2024-06-09 • Rust 包仓库 16/week @ 2024-07-07 • Rust 包仓库 134/week @ 2024-07-14 • Rust 包仓库 28/week @ 2024-07-21 • Rust 包仓库 23/week @ 2024-07-28 • Rust 包仓库 8/week @ 2024-08-11 • Rust 包仓库

每月下载量70次

MIT/Apache

31KB
711 代码行

tipsy

crates.io docs.rs Dependency Status license CI codecov GitHub repo size Lines of Code

这是 parity-tokio-ipc 的分支。

tipsy 是一个使用Tokio实现跨平台异步IPC的库。它在UNIX系统上使用Unix套接字(通过 tokio::net::UnixStream),在Windows系统上使用命名管道(通过 tokio::net::windows::named_pipe)。

服务器

use tipsy::{Endpoint, OnConflict, ServerId};
use futures::stream::StreamExt;
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    Endpoint::new(ServerId::new("my-server"), OnConflict::Overwrite)?
        .incoming()?
        .for_each(|conn| async {
            match conn {
                Ok(stream) => println!("Got connection!"),
                Err(e) => eprintln!("Error when receiving connection: {:?}", e),
            }
        });
    Ok(())
}

客户端

use tipsy::{Endpoint, ServerId};
use tokio::io::AsyncWriteExt;
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let mut client = Endpoint::connect(ServerId::new("my-server")).await?;
    client.write_all(b"ping").await?;
    Ok(())
}

示例

查看 示例

支持的Rust版本

MSRV目前为 1.75.0

依赖项

~3–16MB
~134K SLoC