25 个版本 (主要破坏性更新)
20.0.0 | 2024 年 4 月 22 日 |
---|---|
18.0.0 | 2024 年 4 月 14 日 |
17.0.1 | 2024 年 4 月 14 日 |
16.0.0 | 2024 年 3 月 8 日 |
0.1.0 | 2021 年 2 月 24 日 |
#1243 in 解析器实现
每月下载量 364
1MB
646 行
adsbx_json
这是一个用于解析 ADS-B Exchange API 返回的 JSON 的 Rust 库。它目前支持 API 的第 2 版。
目标与思考
该库的目标是成为访问 ADS-B Exchange API v1 和 v2 返回的所有数据的快速、类型安全的接口。
ADS-B JSON 格式演变得相当频繁,并不总是向后兼容。目前我更喜欢在一种模式下使用这个库,即如果它甚至在 JSON 中看到意外的字段,就会出错,因为这有助于在发生这些变化时突出显示它们,但对于作为库的开发者来说,这更有意义,而对于用户来说可能并不如此。我不确定 serde 是否提供了在运行时选择是否关闭这些严格检查的方法。
状态
alpha,不稳定。处理 ADS-B Exchange API 的第 2 版的所有内容。完全不处理第 1 版。
目前每秒解析约 250,000-300,000 个飞机对象。
开发
构建
cargo build
在发布模式下构建示例
cargo build --release --examples fetch
运行单元和集成测试
cargo test
运行示例代码
ADSBX_API_KEY=xxx cargo run --example fetch -- --url https://adsbexchange.com/api/aircraft/v2/all
输出
Got 3734 aircraft.
Aircraft {
adsb_version: None,
aircraft_type: Some(
"A320",
),
baro_rate: Some(
-2170,
),
barometric_altitude: Some(
Altitude(
12675,
),
),
calc_track: None,
call_sign: Some(
"NKS907 ",
),
[...]
运行基准测试
cargo bench
依赖项
~2.2–3.5MB
~64K SLoC