{"id":23815261,"url":"https://github.com/hove-io/transit_model","last_synced_at":"2026-04-07T11:02:25.402Z","repository":{"id":38313273,"uuid":"114797044","full_name":"hove-io/transit_model","owner":"hove-io","description":"Managing transit data with Rust","archived":false,"fork":false,"pushed_at":"2026-04-03T16:14:59.000Z","size":5043,"stargazers_count":67,"open_issues_count":13,"forks_count":30,"subscribers_count":21,"default_branch":"master","last_synced_at":"2026-04-03T18:36:33.403Z","etag":null,"topics":["gtfs","gtfs-conversion","gtfs2netexfr","gtfs2ntfs","navitia","netex","netexfr","ntfs","rust","transit","transit-model"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hove-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-12-19T18:14:12.000Z","updated_at":"2026-03-27T10:39:30.000Z","dependencies_parsed_at":"2025-12-12T16:09:06.386Z","dependency_job_id":null,"html_url":"https://github.com/hove-io/transit_model","commit_stats":{"total_commits":1543,"total_committers":29,"mean_commits":"53.206896551724135","dds":0.7517822423849644,"last_synced_commit":"fa7e7848dba3c8427a1d8c3e9fcc2a096ba9552c"},"previous_names":["canaltp/transit_model"],"tags_count":177,"template":false,"template_full_name":null,"purl":"pkg:github/hove-io/transit_model","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hove-io%2Ftransit_model","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hove-io%2Ftransit_model/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hove-io%2Ftransit_model/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hove-io%2Ftransit_model/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hove-io","download_url":"https://codeload.github.com/hove-io/transit_model/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hove-io%2Ftransit_model/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31509944,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gtfs","gtfs-conversion","gtfs2netexfr","gtfs2ntfs","navitia","netex","netexfr","ntfs","rust","transit","transit-model"],"created_at":"2025-01-02T04:15:38.115Z","updated_at":"2026-04-07T11:02:25.366Z","avatar_url":"https://github.com/hove-io.png","language":"Rust","funding_links":[],"categories":["Producing Data","Rust","Transport and Mobility"],"sub_categories":["GTFS"],"readme":"# transit_model\n\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/hove-io/transit_model?color=4baea0\u0026style=flat-square\u0026logo=github)](https://github.com/hove-io/transit_model/releases)\n[![API documentation](https://img.shields.io/badge/docs.rs-transit_model-66c2a5?style=flat-square\u0026color=769ECB\u0026logo=data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGZpbGw9IiNmNWY1ZjUiIGQ9Ik00ODguNiAyNTAuMkwzOTIgMjE0VjEwNS41YzAtMTUtOS4zLTI4LjQtMjMuNC0zMy43bC0xMDAtMzcuNWMtOC4xLTMuMS0xNy4xLTMuMS0yNS4zIDBsLTEwMCAzNy41Yy0xNC4xIDUuMy0yMy40IDE4LjctMjMuNCAzMy43VjIxNGwtOTYuNiAzNi4yQzkuMyAyNTUuNSAwIDI2OC45IDAgMjgzLjlWMzk0YzAgMTMuNiA3LjcgMjYuMSAxOS45IDMyLjJsMTAwIDUwYzEwLjEgNS4xIDIyLjEgNS4xIDMyLjIgMGwxMDMuOS01MiAxMDMuOSA1MmMxMC4xIDUuMSAyMi4xIDUuMSAzMi4yIDBsMTAwLTUwYzEyLjItNi4xIDE5LjktMTguNiAxOS45LTMyLjJWMjgzLjljMC0xNS05LjMtMjguNC0yMy40LTMzLjd6TTM1OCAyMTQuOGwtODUgMzEuOXYtNjguMmw4NS0zN3Y3My4zek0xNTQgMTA0LjFsMTAyLTM4LjIgMTAyIDM4LjJ2LjZsLTEwMiA0MS40LTEwMi00MS40di0uNnptODQgMjkxLjFsLTg1IDQyLjV2LTc5LjFsODUtMzguOHY3NS40em0wLTExMmwtMTAyIDQxLjQtMTAyLTQxLjR2LS42bDEwMi0zOC4yIDEwMiAzOC4ydi42em0yNDAgMTEybC04NSA0Mi41di03OS4xbDg1LTM4Ljh2NzUuNHptMC0xMTJsLTEwMiA0MS40LTEwMi00MS40di0uNmwxMDItMzguMiAxMDIgMzguMnYuNnoiPjwvcGF0aD48L3N2Zz4K)](https://docs.rs/transit_model)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/hove-io/transit_model/continuous-integration-deb11.yml?logo=github\u0026style=flat-square)](https://github.com/hove-io/transit_model/actions/workflows/continuous-integration-deb11.yml)\n[![Codecov Code Coverage](https://img.shields.io/codecov/c/github/hove-io/transit_model?color=f01f7a\u0026style=flat-square\u0026logo=codecov)](https://codecov.io/gh/hove-io/transit_model)\n[![License: AGPL v3.0](https://img.shields.io/github/license/hove-io/transit_model?color=9873b9\u0026style=flat-square)](./LICENSE)\n\n**`transit_model`** is a Rust crate to manage, convert and enrich transit\ndata.\\\nThis is done by implementing the [NTFS] model (used in [navitia]).\n\nThis repository regroups crates that offer enabler-libraries and binaries to\nconvert and enrich transit data.\n\nAdditionally, `transit_model` is itself a library providing various\nfunctionalities. Please refer to the code, [examples](examples) and\n[documentation](https://docs.rs/transit_model) to discover them.\n\nPlease check documentation attached to each crate:\n\n* binary [**gtfs2netexfr**](gtfs2netexfr/README.md) converts [GTFS] data format\n  into [NeTEx]-France data format.\n* binary [**gtfs2ntfs**](gtfs2ntfs/README.md) converts [GTFS] data format into\n  [NTFS] data format.\n* binary [**ntfs2gtfs**](ntfs2gtfs/README.md) converts [NTFS] data format into\n  [GTFS] data format.\n* binary [**ntfs2netexfr**](ntfs2netexfr/README.md) converts [NTFS] data format\n  into [NeTEx]-France data format.\n* binary [**ntfs2ntfs**](ntfs2ntfs/README.md) checks and cleans a [NTFS]\n  dataset.\n* binary [**restrict-validity-period**](restrict-validity-period/README.md)\n  restricts the validity period of a [NTFS] dataset and purges out-of-date data.\n\n## Usage with Docker\n\nFor all the binaries mentioned above, it is also possible to use them with\nDocker. All the binaries are part of the image [`navitia/transit_model`] which\nis tagged alongside the crate [`transit_model`].  Let's use `gtfs2ntfs` as an\nexample.\n\n```shell\nmkdir output-ntfs/\ndocker run \\\n\t--volume \"${PWD}/tests/fixtures/gtfs:/gtfs\" \\\n\t--volume \"${PWD}/output-ntfs:/ntfs\" \\\n\tnavitia/transit_model \\\n\tgtfs2ntfs \\\n\t--input /gtfs \\\n\t--output /ntfs\n```\n\n## Setup Rust environment\n\n`transit_model` is developed in [Rust].\n\nIf you want to contribute or install binaries, you need to install a [Rust] environment: see [rustup.rs]\n\n[Rust]: https://www.rust-lang.org\n[rustup.rs]: https://rustup.rs\n\n## [PROJ] dependency\n\nBased on [PROJ], the [`proj` crate] allows the transformation of\nlocalization coordinates.\n\nSome `transit_model`'s crates (see each documentation) use [PROJ].\\\nSo it must be installed on the system to compile and use those crates.\n\n### [PROJ] for binaries\n\nThe [`proj` crate] requires [PROJ].\n\nIf your system has `pkg-config` and a sufficiently new version of [PROJ] installed, it will be used.\nOtherwise, the crate falls back to building [PROJ] from source, which requires some build time dependencies.\n\nTo install [PROJ] build time dependencies, you can execute the following command (On Debian systems):\n\n```sh\nmake install_proj_deps\n```\n\nYou can also install the required [PROJ] version system-wide to avoid full rebuild (ex: `cargo clean`):\n\n```sh\nmake install_proj\n```\n\n[PROJ installation instructions](https://github.com/OSGeo/PROJ#installation)\nmay help, too.\n\n### Using [PROJ] and transit_model as a developer\n\n[`proj` crate] is a binding to the C library.\n\n[PROJ] is configured as a `feature` of the `transit_model` crate.\\\nSo to use it for coding, the `proj` feature must be activated\n(`cargo build --features=proj`).\\\nThen specific code should be conditionally enabled with\n`#[cfg(feature=\"proj\")]`.\n\n## NTFS Level of Support\n\n`transit_model` is supporting most of [NTFS] format.\\\nFrom the standard, some of the functionalities are not fully supported:\n\n* No support for Line Groups (files `line_groups.txt` and `line_group_links.txt`).\n* The field `trip_short_name_at_stop` in `stop_times.txt` introduced in version\n  `v0.10.0` (see [NTFS changelog in French]) is not supported.\n\n## Contributing\n\nPlease see [CONTRIBUTING](CONTRIBUTING.md) to know more about the code or how\nto test, contribute, report issues.\n\n## License\n\nLicensed under [GNU Affero General Public License v3.0](LICENSE)\n\n[GTFS]: https://gtfs.org/reference/static\n[navitia]: https://github.com/hove-io/navitia\n[NeTEx]: http://netex-cen.eu\n[NTFS]: https://github.com/hove-io/ntfs-specification/blob/master/ntfs_fr.md\n[NTFS changelog in French]: https://github.com/hove-io/ntfs-specification/blob/master/ntfs_changelog_fr.md\n[PROJ]: https://proj.org\n[`proj` crate]: https://crates.io/crates/proj\n[`navitia/transit_model`]: https://hub.docker.com/r/navitia/transit_model\n[`transit_model`]: https://crates.io/crates/transit_model\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhove-io%2Ftransit_model","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhove-io%2Ftransit_model","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhove-io%2Ftransit_model/lists"}