7 个不稳定版本
0.4.0 | 2024年2月29日 |
---|---|
0.3.0 | 2022年5月30日 |
0.2.0 | 2021年9月13日 |
0.1.3 | 2021年2月8日 |
0.1.2 | 2020年11月29日 |
#596 在 解析器实现
8,728 每月下载量
75KB
1K SLoC
LDAP 解析器
A Lightweight Directory Access Protocol (LDAP) (RFC4511) 解析器,使用 nom 解析器组合框架实现。
它完全用 Rust 编写,速度快,广泛使用零拷贝。非常注重确保此crate的安全性,包括设计(递归限制,防御性编程)、测试和模糊测试。它还旨在无panic。
代码可在 Github 上找到,并是 Rusticata 项目的一部分。
示例
解析 LDAP 消息(BER 格式)
use ldap_parser::parse_ldap_message;
use ldap_parser::ldap::{MessageID, ProtocolOp, ProtocolOpTag};
static DATA: &[u8] = include_bytes!("../assets/message-search-request-01.bin");
let res = parse_ldap_message(DATA);
match res {
Ok((rem, msg)) => {
assert!(rem.is_empty());
//
assert_eq!(msg.message_id, MessageID(4));
assert_eq!(msg.protocol_op.tag(), ProtocolOpTag::SearchRequest);
match msg.protocol_op {
ProtocolOp::SearchRequest(req) => {
assert_eq!(req.base_object.0, "dc=rccad,dc=net");
},
_ => panic!("Unexpected message type"),
}
},
_ => panic!("LDAP parsing failed: {:?}", res),
}
变更
许可证
许可协议为以下之一
- Apache 许可证 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的您有意提交的任何贡献,都将如上所述双重许可,没有任何附加条款或条件。
依赖项
~1.6–2.4MB
~47K SLoC