We're pleased to announce the release of transitland-lib version 1.0.0. This software library, written in the Go programming language, is the foundation of the Transitland platform and integral to a growing range of purpose-built applications.
From experiment to production
In 2019, the Interline team began exploring how Go's performance characteristics could serve as a new foundation for Transitland's v2 platform. The goal was simple: process the largest and most complex GTFS feeds faster and more efficiently.
After years of iteration and real-world testing, with hundreds of thousands of GTFS feeds processed, we've finally tagged a v1.0.0. This release represents a stable production-ready library that powers critical transit data systems.
Real-world uses
transitland-lib can be found within many transit data platforms operated by Interline:
- The canonical Transitland deployment at www.transit.land
- MTC's 511 Regional Feed for the San Francisco Bay Area
- A new transit analysis tool for public agencies across the states of Washington, Oregon, and California
- A routing engine deployment for a business client that covers an entire country
- The new Transitland Routing API beta that currently provides journey planning across the entire United States
This component is also in use by other organizations. For example, Portland TriMet uses transitland-lib to efficiently clip Amtrak's country-wide feed to create a focused feed to ingest into their own OpenTripPlanner routing engine for the greater Portland, Oregon, region.
Built for handling many feeds
transitland-lib provides:
- Fast feed processing for both static GTFS and GTFS Realtime
- Memory-efficient operations
- Concurrent data handling
- Robust error handling
- Defining multiple input feeds using the Distributed Mobility Feed Registry (DMFR) format
Performance in action
Let's look at one example of transitland-lib's capabilities to process and validate massive GTFS feeds. This demonstration covers Switzerland's entire transit network, one of the largest GTFS feeds in the world (view on transit.land):
✗ transitland validate https://data.opentransportdata.swiss/en/dataset/timetable-2025-gtfs2020/permalink

In about one and a half minutes on a laptop, transitland-lib downloads and processes a GTFS feed including 460 separate agencies, over 90,000 stops, over 4,000 routes, over 1.2 million trips, and a complicated set of calendar and calendar date records.
The library's ability to handle such large datasets reliably makes it an ideal choice for processing national-scale transit feeds or creating regional subsets of larger networks.
Extensible architecture
transitland-lib's extension framework enables support for both standard GTFS and experimental extensions. This flexibility has been crucial for:
- Processing MTC GTFS+ files for the SF Bay Regional Feed
- Supporting GTFS Fares-v2 as it has iteratively evolved from proposal to adopted specification
- Supporting the addition of GTFS Pathways using Interline's Station Editor
We update transitland-lib to track the latest static GTFS and GTFS Realtime specifications. To check which version of the specifications you are using, simply run the transitland version
command:
✗ transitland version
transitland-lib version: v1.0.0
transitland-lib commit: https://github.com/interline-io/transitland-lib/commit/bae91cd7f32c67ffe89965cab3636e22ddbce817 (time: 2025-03-11T18:47:50Z)
GTFS specification version: https://github.com/google/transit/blob/11a49075c1f50d0130b934833b7eeb3fe518961c/gtfs/spec/en/reference.md
GTFS Realtime specification version: https://github.com/google/transit/blob/7b9f229dfa0b539c3fcf461986638890024feb06/gtfs-realtime/proto/gtfs-realtime.proto
Validation and best practices
GTFS feeds can be messy. Therefore, transitland-lib:
- Validates required fields and data types
- Ensures referential integrity between files
- Checks that feeds meet many of the best practices
- Also supports validating GTFS Realtime feeds
With both static GTFS and GTFS Realtime processed using the same library, we're now able to put into ongoing production-scale use Interline's previous research with University of South Florida into GTFS Realtime validation.
The MobilityData validator lends itself well to interactive use when people and organizations creating GTFS feeds want to check to ensure their static feed is ready for submission to a third-party consumer. The MobilityData validator outputs a report that is useful for reference and sharing.
In contrast, transitland-lib is designed to efficiently process many feeds, to serve as a component within production-scale processing pipelines, and to optionally validate GTFS Realtime endpoints with the context of a static GTFS feed with associated schedules.
transitland-lib also gives developers options for how to handle invalid data:
- For the canonical Transitland deployment, we've configured transitland-lib to fail soft. When errors are limited to certain rows in a GTFS feed, those entities are filtered out. The rest of the feed's data is imported and made available to users.
- For some client deployments, we've configured transitland-lib to fail hard. Any error in a source feed will halt the entire workflow and instantly notify staff to review the issue.
Each application may have different goals and different tradeoffs for how to handle invalid data, and transitland-lib provides options to customize and control this behavior.
Powerful filtering system
transitland-lib's filtering system enables modifying and transforming GTFS feeds for specific project contexts, such as:
- Producing date-specific GTFS feeds
- Building regional routing engines with optimized data
- Merging together many source feeds to create regional, state, or national scale feeds
- Standardizing data across multiple agencies, with customized rules for namespacing entities
Interline uses transitland-lib to curate full-service data deliveries for our clients needing consistent GTFS data across states and countries.
Using transitland-lib
If you use the Transitland website or the Transitland APIs, you're already using transitland-lib.
Developers can visit github.com/interline-io/transitland-lib to learn more about transitland-lib as a command-line interface (CLI) or a library for programmatic usage.
transitland-lib is available under a dual license model enabling open-source use under the permissive GPLv3 license and also providing flexibility to Interline's clients under a customizable business license.
We look forward to continuing to maintain transitland-lib for another six years as the GTFS and GTFS Realtime specifications continue to evolve and as the number and size of source feeds continues to grow.