#basic-authentication #http-basic #basic-auth #http #http-server #digest

http-auth

HTTP身份验证:解析挑战列表,响应Basic和Digest挑战。可能扩展以支持服务器和额外的身份验证方案。

10次发布

0.1.9 2023年12月28日
0.1.8 2023年1月30日
0.1.6 2022年5月2日
0.1.5 2021年11月30日
0.1.3 2021年10月21日

#21 in 身份验证

Download history 36403/week @ 2024-04-23 36568/week @ 2024-04-30 37213/week @ 2024-05-07 35347/week @ 2024-05-14 36452/week @ 2024-05-21 38498/week @ 2024-05-28 36116/week @ 2024-06-04 37756/week @ 2024-06-11 37053/week @ 2024-06-18 39372/week @ 2024-06-25 36911/week @ 2024-07-02 39168/week @ 2024-07-09 41237/week @ 2024-07-16 40372/week @ 2024-07-23 41188/week @ 2024-07-30 39549/week @ 2024-08-06

168,831 每月下载量
120 个crate中使用 (6 直接)

MIT/Apache

105KB
2K SLoC

crates.io Released API docs CI

Rust HTTP身份验证库。解析挑战列表,响应BasicDigest挑战。可能扩展以支持服务器和额外的身份验证方案。

以下文档和规范描述了HTTP身份验证

此框架主要用于HTTP,如名称所示。它也被某些其他协议(如RTSP)使用。

状态

经过良好测试,适用于生产。API可能发生变化以改进人体工程学和功能。可能添加新功能。PR欢迎!

目标

按照顺序

  1. 健壮。目前在http-auth自身中没有任何unsafe块。所有依赖项都是常见的、受信任的crate。
  2. 正确。精确实现了规范(除非有说明)。模糊测试验证手写的解析器永远不会崩溃并匹配基于nom的参考实现。
  3. 轻量级。最小依赖;使用Cargo功能,调用者可以在不需要时避免它们。简单的代码,最小化单态化膨胀。小型数据结构;例如,http_auth::DigestClient目前重32字节,加上一个字符串字段的分配。
  4. 完整。实现了解析和响应挑战。(目前仅支持客户端和响应最常见的BasicDigest方案;未来可能扩展。)
  5. 人体工程学。 创建一个响应密码挑战的客户端,只需一行代码即可从字符串标题或http::header::GetAll完成。
  6. 足够快。 HTTP身份验证是实际程序的一部分,而http-auth的CPU使用率不应该引起注意。对于Digest的加密操作,它使用流行的优化包。在其他方面,http-auth可能与其他HTTP身份验证包一样高效,尽管我没有理由相信它们的性能有问题。

作者

Scott Lamb <[email protected]>

许可证

SPDX-License-Identifier: MIT OR Apache-2.0

请参阅LICENSE-MIT.txtLICENSE-APACHE

依赖项

~110–630KB
~11K SLoC