#spawn #subprocess #proc

开发 procspawn

仅用线程::spawn启动进程

19 个版本 (2 个稳定版)

1.0.1 2024年8月6日
1.0.0 2023年9月11日
0.10.3 2023年8月31日
0.10.2 2023年1月26日
0.8.4 2020年2月28日

#133编码

Download history 2899/week @ 2024-05-02 1197/week @ 2024-05-09 2120/week @ 2024-05-16 2177/week @ 2024-05-23 2087/week @ 2024-05-30 1587/week @ 2024-06-06 2352/week @ 2024-06-13 1403/week @ 2024-06-20 897/week @ 2024-06-27 1628/week @ 2024-07-04 1811/week @ 2024-07-11 2239/week @ 2024-07-18 1869/week @ 2024-07-25 1528/week @ 2024-08-01 1746/week @ 2024-08-08 1486/week @ 2024-08-15

7,164 每月下载量
4 crate 中使用

MIT/Apache

82KB
1.5K SLoC

procspawn

Build Status Crates.io Documentation rustc 1.65.0

这个crate提供使用类似于 thread::spawn 的函数启动进程的能力。它传递 serde 可序列化对象,而不是闭包。启动的闭包的返回值也必须是可序列化的,然后可以从返回的连接句柄中检索。

如果启动的函数导致panic,它也会在进程边界上进行序列化。

示例

步骤1:在程序早期(main函数开头附近)调用 procspawn::init。该点之前发生的事情也会在启动的函数中发生。

procspawn::init();

步骤2:现在可以开始启动函数了

let data = vec![1, 2, 3, 4];
let handle = procspawn::spawn(data, |data| {
    println!("Received data {:?}", &data);
    data.into_iter().sum::<i64>()
});
let result = handle.join().unwrap();

依赖关系

~5–39MB
~592K SLoC