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 解析器实现

Download history 304/week @ 2024-04-13 145/week @ 2024-04-20 14/week @ 2024-04-27 5/week @ 2024-05-18 2/week @ 2024-05-25 5/week @ 2024-06-01 7/week @ 2024-06-08 1/week @ 2024-06-15 13/week @ 2024-06-29 353/week @ 2024-07-27

每月下载量 364

MIT 许可证

1MB
646

pipeline status

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