4个版本 (破坏性更新)
0.4.0 | 2024年7月29日 |
---|---|
0.3.0 | 2024年7月26日 |
0.2.0 | 2024年7月26日 |
0.1.0 | 2024年7月26日 |
#110 in WebAssembly
每月391次下载
58KB
1K SLoC
wstd
为Wasm组件和WASI 0.2提供的异步标准库
这是一个专为支持Wasm组件而编写的最小化异步标准库。它主要存在是为了在async-std、smol或tokio支持Wasm组件和WASI 0.2之前,让用户能够用Rust编写基于异步的应用程序。一旦这些运行时提供了支持,建议用户切换到使用这些运行时。
示例
基于TCP的回显服务器
use wstd::io;
use wstd::iter::AsyncIterator;
use wstd::net::TcpListener;
use wstd::runtime::block_on;
fn main() -> io::Result<()> {
block_on(|reactor| async move {
let listener = TcpListener::bind(&reactor, "127.0.0.1:8080").await?;
println!("Listening on {}", listener.local_addr()?);
println!("type `nc localhost 8080` to create a TCP client");
let mut incoming = listener.incoming();
while let Some(stream) = incoming.next().await {
let stream = stream?;
println!("Accepted from: {}", stream.peer_addr()?);
io::copy(&stream, &stream).await?;
}
Ok(())
})
}
安装
$ cargo add wstd
安全性
此crate使用#![deny(unsafe_code)]
来确保所有实现都是100%安全的Rust代码。
贡献
想加入我们吗?查看我们的“贡献”指南,并查看一些这些问题
许可证
根据您的选择,许可为Apache许可证,版本2.0或MIT许可证。除非您明确声明,否则您有意提交的任何贡献,根据Apache-2.0许可证定义,均将根据上述条款双许可,不附加任何额外条款或条件。
依赖
~2.5MB
~66K SLoC