去年刚开始用 rust 的时候很奇怪为什么社区没支持 async 的 mpmc, 可能由于那时候 async-await 还是在nightly 状态, 所以自己基于 crossbeam 来撸了一个. 经过近一年的测试, 已经达到稳定, 所以发布出来. (刚得知 crossbeam 作者前几天刚发了个 async-channel 但还没来得及仔细看)
https://crates.io/crates/crossfire
可以到 https://github.com/qingstor/crossfire-rs 提 issue.
我另外在 reddit 也开了个帖子 https://www.reddit.com/r/rust/comments/hi9vhj/crossfire_yet_another_async_mpmcmpsc_based_on/
这个 crate 最大的特点是支持线程语境和 async 语境的通讯 (async->async, async->blocking, blocking->async). 并且一收一发的性能能够达到千万级 (tokio 和 std 的 channel 都只是百万级), 某些情形下能接近 crossbeam 本身的性能.
由于之前都是内部使用并且工作比较忙, 文档和 example 还在完善中, 不过暂时可以看着测试用例.
目前我主要在 tokio 下使用, 比较新的 async-std 还没怎么了解过, 如果有感兴趣的朋友也可以试用一下.
评论区
写评论中文名称-穿越火线 哈哈哈哈哈
是的,stjepang 真大佬。
--
👇
frostyplanet: 看了一下 crossbeam的作者又弄了个新的 runtime 叫 smol, 还有一堆 async-* 打头的 crate, 那才是真的大佬. 需要学习的运行时又多了一个...
看了一下 crossbeam的作者又弄了个新的 runtime 叫 smol, 还有一堆 async-* 打头的 crate, 那才是真的大佬. 需要学习的运行时又多了一个...
大佬!
我只能说:牛皮!
点赞
👍 赞~
bull beer.