41个版本 (12个稳定版)

2.0.1 2024年8月14日
2.0.0 2023年12月31日
1.3.0 2022年11月29日
1.2.5 2020年11月28日
0.0.1 2020年2月3日

1038异步

Download history 58046/week @ 2024-05-03 62480/week @ 2024-05-10 60076/week @ 2024-05-17 66738/week @ 2024-05-24 63041/week @ 2024-05-31 55817/week @ 2024-06-07 60037/week @ 2024-06-14 58553/week @ 2024-06-21 49654/week @ 2024-06-28 56362/week @ 2024-07-05 62910/week @ 2024-07-12 67586/week @ 2024-07-19 68263/week @ 2024-07-26 66359/week @ 2024-08-02 80665/week @ 2024-08-09 67757/week @ 2024-08-16

每月下载量295,094
395 个crates中使用了(286个直接使用)

Apache-2.0 OR MIT

275KB
57

smol

Build License Cargo Documentation Chat

kitty

一个轻量级且快速的异步运行时。

此crate简单地导出其他更小的异步crate(见源代码)。

要使用基于tokio的库与smol一起使用,请将async-compat适配器应用于futures和I/O类型。

示例

连接到HTTP网站,发起GET请求,并将响应管道输出到标准输出

use smol::{io, net, prelude::*, Unblock};

fn main() -> io::Result<()> {
    smol::block_on(async {
        let mut stream = net::TcpStream::connect("example.com:80").await?;
        let req = b"GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n";
        stream.write_all(req).await?;

        let mut stdout = Unblock::new(std::io::stdout());
        io::copy(stream, &mut stdout).await?;
        Ok(())
    })
}

更多示例在示例目录中。

子crate

TLS证书

一些代码示例使用TLS进行身份验证。仓库包含一个自签名的测试证书,但不应用于实际场景。浏览器和curl等工具会将此证书视为不安全。

在浏览器中,接受安全提示或使用以下命令行代码curl -k绕过安全警告。

证书文件是用minicaopenssl生成的。

minica --domains localhost -ip-addresses 127.0.0.1 -ca-cert certificate.pem
openssl pkcs12 -export -out identity.pfx -inkey localhost/key.pem -in localhost/cert.pem

制作证书的另一款有用工具是mkcert

MSRV策略

此crate的最小支持Rust版本(MSRV)为1.63。作为一项临时政策,MSRV不会超过由Debian稳定版提供的当前Rust版本(当前版本为1.63)。然而,在生态发生重大变化或出现安全漏洞的情况下,MSRV可能会进一步提高。

许可证

根据您的选择,许可协议为以下之一

贡献

除非您明确表示,否则任何根据Apache-2.0许可证定义的、有意提交以包含在作品中的贡献,都将按照上述方式双许可,不附加任何额外条款或条件。

依赖项

~3–12MB
~140K SLoC