node-gtfs is a comprehensive Node.js library and CLI toolkit for ingesting, querying, exporting, and updating GTFS (General Transit Feed Specification) transit data. It supports SQLite natively and PostgreSQL/MySQL through Kysely, handling static schedule feeds, GTFS Realtime (alerts, trip updates, vehicle positions), and extended standards (GTFS-Plus, GTFS-Ride, GTFS-to-HTML, TODS, TIDES, NOPTIS). The architecture centers on a declarative schema definition system that compiles to SQL table metadata, enabling robust import/export pipelines and a rich query API with ~50 getter functions. The codebase demonstrates strong engineering practices: parameterized SQL builders, structured error handling, configurable reporting, and comprehensive test coverage. It is actively maintained, uses modern tooling (pnpm, TypeScript, ESM), and provides a reusable foundation for transit data applications.
This is the official specification repository for the General Transit Feed Specification (GTFS) and GTFS Realtime, hosted by Google and maintained by the community. It contains extensive documentation defining the structure, fields, and semantics of static transit schedule data (CSV-based) and real-time updates (Protocol Buffers schema). The repository includes governance documents, best practices, example feeds (e.g., sample-feed-1.zip), and asciipb examples. There is no application code, data pipelines, or notebooks; it is purely a specification standard. It serves as the authoritative reference for transit agencies (producers) and application developers (consumers) building interoperable transit tools.
This repository defines the Transit data interchange format (v0.8), a cross-language serialization specification for conveying values between applications. It does not contain any implementation code for reading or writing Transit; instead, it provides the authoritative specification (README.md), a comprehensive suite of example data files in multiple representations (EDN, JSON, verbose JSON, MessagePack), and a Clojure-based testing infrastructure to verify that third-party Transit implementations correctly encode/decode according to the spec. The test harness in `src/transit/verify.clj` orchestrates roundtrip tests by invoking external implementation processes (via `bin/verify`), using both hand-crafted corner cases and generative random data to ensure correctness. The repo acts as the central reference for all Transit implementations across languages including Clojure, Java, JavaScript, Python, Ruby, and others.