16个版本 (破坏性更新)
0.13.0 | 2021年10月31日 |
---|---|
0.11.0 | 2020年3月18日 |
0.10.0 | 2019年4月14日 |
0.8.0 | 2018年2月8日 |
0.4.0 | 2016年7月19日 |
#70 in HTTP客户端
每月下载量 114,551次
在 7个 库中使用 (直接使用4个)
1MB
2.5K SLoC
woothee-rust
Project Woothee 的 Rust 实现,它是多语言用户代理字符串解析器。
用法
解析用户代理。
extern crate woothee;
use woothee::parser::Parser;
fn main() {
let parser = Parser::new();
let result = parser.parse("Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)");
println!("{:?}", result);
}
运行
Some(WootheeResult { name: "Internet Explorer", category: "pc", os: "Windows 7", os_version: "NT 6.1", browser_type: "UNKNOWN", version: "8.0", vendor: "Microsoft" })
基准测试
$ cargo +nightly bench
running 8 tests
test bench_stabilizer ... bench: 22 ns/iter (+/- 1)
test create_parser_uap ... bench: 190,983,237 ns/iter (+/- 18,726,783)
test create_parser_uaparser ... bench: 331,963,075 ns/iter (+/- 20,320,543)
test create_parser_woothee ... bench: 0 ns/iter (+/- 0)
test parse_fast_uaparser ... bench: 423,632 ns/iter (+/- 42,520)
test parse_uap ... bench: 606,682 ns/iter (+/- 65,967)
test parse_uaparser ... bench: 826,622 ns/iter (+/- 105,940)
test parse_woothee ... bench: 6,814 ns/iter (+/- 1,924)
维护者
从 woothee/woothee 数据集和测试集生成代码。
$ cargo build --features=generate
$ cargo +nightly fmt
$ cargo test # and code review!!!
使用 clippy 检查 (可选)
$ rustup component add clippy-preview && cargo clippy
链接
依赖关系
~2–4MB
~59K SLoC