Import, export, and query GTFS transit data in SQLite with support for realtime updates and spatial queries.
node-GTFS is a Node.js library for importing, querying, and exporting GTFS (General Transit Feed Specification) transit data. It solves the problem of processing complex transit schedules by loading GTFS files into a queryable SQLite database and providing a comprehensive API for accessing routes, stops, schedules, fares, and realtime updates.
Transit developers, data analysts, and agencies building applications that consume or process GTFS data, such as timetable generators, realtime transit widgets, mapping tools, and data validation systems.
Developers choose node-GTFS because it offers a complete, battle-tested solution for GTFS data manipulation with built-in support for realtime feeds, spatial queries, and multiple GTFS extensions, all through a simple API and command-line interface.
Import GTFS transit data into SQLite and query routes, stops, times, fares and more.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports static GTFS, realtime feeds, and extensions like GTFS-Ride and ODS, as detailed in the extended GTFS support and query methods sections.
Allows multiple agencies, custom HTTP headers, and file exclusion via a detailed agencies array in config.json, enabling tailored data imports.
Provides methods like getStopsAsGeoJSON and bounding box queries to find nearby stops and convert data to GeoJSON for mapping applications.
Works as both a command-line tool (e.g., gtfs-import) and an embedded Node.js module, with examples for each in the quick start section.
TypeScript typings are described as basic and may have inconsistencies, requiring developers to report issues for fixes, as noted in the TypeScript Support section.
Relies on SQLite for storage, which may not scale well for very large datasets or high-concurrency scenarios, and lacks built-in support for other databases.
Setting up requires a detailed JSON configuration file with numerous options, which can be overwhelming and error-prone for new users.