Language bindings generated from the GTFS Realtime protocol buffer spec for popular languages.
GTFS Realtime is a data format for communicating real-time information about public transit systems. GTFS Realtime data is encoded and decoded using Protocol Buffers, a compact binary representation designed for fast and efficient processing. The data schema itself is defined in gtfs-realtime.proto.
To work with GTFS Realtime data, a developer would typically use the
gtfs-realtime.proto
schema to generate classes in the programming language of
their choice. These classes can then be used for constructing GTFS-realtime
data model objects and serializing them as binary data or, in the reverse
direction, parsing binary data into data model objects.
Because generating GTFS Realtime data model classes from the
gtfs-realtime.proto
schema is such a common task, but also one that sometimes
causes confusion for first-time developers, this project aims to provide
pre-generated GTFS Realtime language bindings for a number of the most popular
programming languages. Where possible, these language bindings will be
published as packages to facilitate their use in other projects.
- .NET
- Java
- JavaScript / Node.js
- Python
- Golang
Ruby(Deprecated as of early 2019)PHP(Deprecated as of early 2019)
We don't provide generated code for C++, use the official protoc compiler for that (from here or here)
Are we missing your favorite language? Consider contributing:
- Read CONTRIBUTING.md.
- Open a pull request with your language of choice. Please include update instructions (ideally, scripts). Also, provide packaging suitable for the language ecosystem.
This project was originally created by Google - MobilityData started to maintain the project in early 2019.
Older versions of the bindings libraries are still published under Google's name. See the documentation for each language here to find the last version published by Google.