2 个不稳定版本
0.2.0 | 2023年7月25日 |
---|---|
0.1.0 | 2023年7月23日 |
<#15>在#la
28KB
348 行
洛杉矶 Protobuf 警报
洛杉矶地铁没有以 Protobuf 格式与公众分享警报。然而,服务警报页面的 JSON 格式似乎兼容。它以 JSON 格式呈现。我能够使用 gtfs_rt
crate 将其转换为 Protobuf。
项目在63小时后过时,洛杉矶地铁通过发布 https://s3.amazonaws.com/la-alerts-prod/alerts.pb 🎉🎉🎉🎉🎉 响应。
我的版本的数据流托管在
https://kactusapi.kylerchin.com/gtfsrt/?feed=f-metro~losangeles~bus~rt&category=alerts
和
https://kactusapi.kylerchin.com/gtfsrt/?feed=f-metro~losangeles~rail~rt&category=alerts
可读的 JSON
https://kactusapi.kylerchin.com/gtfsrtasjson/?feed=f-metro~losangeles~bus~rt&category=alerts
https://kactusapi.kylerchin.com/gtfsrtasjson/?feed=f-metro~losangeles~rail~rt&category=alerts
运行二进制文件
运行时 bin/main.rs
是一个脚本,每10秒运行一次 req_into_split_feeds_bytes()
,并将压缩的 protobuf 字节插入到 redis 键 gtfsrt|f-metro~losangeles~rail~rt|alerts
和 gtfsrt|f-metro~losangeles~rail~rt|alerts
这与 kylerchin/kactus-gtfs-rt 服务器兼容。可以使用 kactus 服务器将其作为 Web API 发布。
在自己的项目中使用原始函数
如果您想将此集成到自己的项目中而不使用 Redis 缓存,以下是该库中的函数。
download_to_structure()
将整个警报放入单个 gtfs_rt::FeedMessage
req_into_split_feeds()
调用 download_to_structure()
并将其拆分为结构体
pub struct SplitFeeds {
pub bus: gtfs_rt::FeedMessage,
pub rail: gtfs_rt::FeedMessage,
}
req_into_split_feeds_bytes()
调用 req_into_split_feeds()
但它是压缩的 protobuf 版本
pub struct split_feeds_bytes {
pub bus: Vec<u8>,
pub rail: Vec<u8>,
}
依赖项
~12–27MB
~445K SLoC