6个版本 (破坏性更新)
0.8.0 | 2024年4月10日 |
---|---|
0.7.0 | 2023年10月4日 |
0.6.0 | 2023年10月4日 |
0.5.0 | 2023年5月1日 |
0.3.0 | 2023年1月18日 |
#888 在 网络编程 中
190KB
4K SLoC
netbeam
这是一个使用tokio的纯Rust异步网络同步crate,它重新创建了熟悉的异步范式,但是在网络环境中。
设A
和B
为两个节点,它们之间有一个预先建立的有序+可靠的连接(例如,通过TCP、TLS、QUIC等)
- join 给定
A
执行函数f_a -> r_a
和B
执行函数f_b -> r_b
,将r_a
返回给A
,将r_b
返回给B
- try_join 给定
A
执行函数f_a -> Result<r_a>
和B
执行函数f_b -> Result<r_b>
,如果Result<r_a> = Ok(r_a)
ANDResult<r_b> = Ok(r_b)
,则将Result<r_a>
返回给A
,将Result<r_b>
返回给B
。如果任一节点失败,则返回全局错误。 - select 给定
A
执行函数f_a -> r_a
和B
执行函数f_b -> r_b
,如果r_a
首先计算,则将r_a
返回给A
;如果r_b
首先计算,则将r_b
返回给B
。 - try_select 给定
A
执行函数f_a -> Result<r_a>
和B
执行函数f_b -> Result<r_b>
,如果Result<r_a>
首先计算 ANDResult<r_a>
=Ok(r_a)
,则将Result<r_a>
返回给A
;如果Result<r_b>
首先计算 ANDResult<r_b>
=Ok(r_b)
,则将Result<r_b>
返回给B
。如果两个节点都失败,则返回全局错误。
NetMutex:两个节点之间以同步方式共享内存的互斥算法 NetRwLock:允许两个节点之间有一个写者或多个读者
此外,还有一个 sync_start
文件,允许在约相同的时间同步两个操作。每个操作的示例都在 src/sync/[...] 下的源代码中。
依赖项
~4–14MB
~155K SLoC