10个版本

0.2.3 2023年11月29日
0.2.2 2023年11月26日
0.1.5 2023年11月25日

操作系统 中排名第 221

Download history 18/week @ 2024-03-10 1/week @ 2024-03-17 117/week @ 2024-03-24 5/week @ 2024-03-31

每月下载量 83

MIT 协议

37KB
473

Suave 😎

Suave是一个专注于让多进程和进程间通信运行起来的库。它是100%异步的,并使用纯Rust编写。

应支持所有方法和功能,并且这些功能正在不断添加。欢迎加入我们。

注意queue 功能尚不稳定。

功能

轻松创建锁文件

注意: 此实现不需要实际读取或写入。

use suave::pipe::LockFile;

let lockfile = LockFile::temp().await?;

{
  let lock = lockfile.lock().await?;
  // locked within this scope.
  eprintln!("Woohoo, its locked!");
} // unlocked on Drop.

使用共享文件进行通信

此实现使用 LockFile 内部同步写入。

use suave::pipe::NamedPipe;

// connect to this shared resource
let pipe = NamedPipe::connect("shared_resource").await?;
// aqquire the lock and write "Hello, World!"
let nbytes = pipe.write(b"Hello, World!").await?;
eprintln!("wrote {} bytes to our shared resource!", nbytes);

使用剪贴板进行通信

此实现使用 LockFile 内部同步写入。

use suave::clipboard::Clipboard;

let clipboard = Clipboard::connect().await?;
let contents = clipboard.read()?;
eprintln!("initial contents: {}", contents);

clipboard.write("Something...", WriteKind::Guarantee).await?;
// Alternate way to just read clipboard contents, due to reading not needed a lock.
let new_contents = Clipboard::contents()?;
assert_eq!(new_contents, "Something...");

依赖关系

~3–17MB
~189K SLoC