8 个版本 (4 个重大更改)
0.5.0 | 2024年3月17日 |
---|---|
0.4.0 | 2023年9月5日 |
0.3.2 | 2023年5月12日 |
0.3.1 | 2021年11月16日 |
0.1.1 | 2021年7月10日 |
在 加密学 中排名 #374
每月下载量:24
用于 3 个 crate (2 个直接使用)
63KB
1.5K SLoC
一个通用的异步 ACME crate。
主要目标是允许二进制文件选择使用哪个异步运行时和 TLS 库。
特性
您需要通过特性指定实际工作中使用的 crate。
特性标志 | 含义 |
---|---|
use_tokio | 使用 tokio 作为异步运行时 |
use_async_std | 使用 async_std 作为异步运行时 |
use_rustls | 使用 rustls 进行 HTTPS 并为其生成证书 |
hyper_rustls | use_rustls +use_tokio |
async_std_rustls | use_rustls +use_async_std |
如果没有指定任何内容,您将得到 未选择异步后端 或 未选择加密后端。如果您将此 crate 用作库,请 重新导出 适当的功能。
动机
Rust 提供不同的异步运行时,在高级别上提供相同的功能:文件、套接字等的异步函数。
因此,如果您编写一个库并且需要一些基本功能(如 HTTP 客户端),有时您必须做出用户可能不喜欢的选择。例如:我编写了一个基于 hyper 的 web服务器,并想添加 ACME。我找到的一个 crate 做了我需要的事情,但使用了 async-h1 和 async-std。虽然这可以工作,但它确实增加了二进制文件的大小,并显著增加了我依赖的 crate 数量。
所以我写了这个。你可以指定要使用哪个后端。在Web服务器的情况下,使用 --features="hyper_rustls"
(相同的依赖)而不是 --features="async_std_rustls"
可以减少81个crate并使二进制文件减小350kB。
[profile.release]
lto = "fat"
codegen-units = 1
示例
这些查询来自Let's Encrypt的测试端点的证书。为了使它们工作,你需要将电子邮件和域名从 example.com
更改为自己的。
- 使用rustls的Hyper服务器:
cargo run --example hyper_rustls --features="hyper_rustls"
- 使用rustls的async-std服务器:
cargo run --example async_rustls --features="async_std_rustls"
计划
- 添加native_tls
- 添加openssl证书生成
依赖
~5–20MB
~315K SLoC