dfl*_*str 5 embedded io rust rust-no-std
我正在构建一个在平台上使用的库,no_std该库允许您执行一些常见的与网络相关的 IO,例如发出 HTTP 请求或读取/写入 Websockets。
现在,我希望这个库成为一个行为良好的公民,以便它可以轻松地包含在其他no_std应用程序中。因此,我想通过实现合理的特征等来打包该库。该库将允许我不必使用alloc,因此支持 non-alloc no_std将是理想的选择。
这些是我看过的选项:
embedded_haland nb:这些板条箱的级别确实很低(没有像Read和Write或任何更高级别的通用特征)并且异步模型似乎与async/awaitgenio// core_io...:这些根本不支持异步IO。embrio:看起来很有趣,但似乎使用它会将我束缚在一个特定的环境中,从而使该库的可移植性较差。tokiov0.2.x:我很想使用它,但no_std根本不支持。futures::iov0.3.x:同样,很想使用它,但没有no_std支持。我应该在 no_std 环境中使用哪种异步 IO 抽象?如果现在没有好的选择,我应该为未来下注/提供帮助?
看看embassy-rs。有一个非常活跃的社区。目前,embassy-rs 支持;
全部建立在 Rust 异步之上。还有一些非常好的宏可以为任务生成静态缓冲区,因此您不需要分配。