51 releases (27 breaking)

new 0.31.3 Sep 25, 2020
0.30.1 Aug 26, 2020
0.26.1 Jul 31, 2020
0.16.0 Mar 27, 2020
0.5.0 Jul 4, 2019
Download history 823/week @ 2020-06-09 1584/week @ 2020-06-16 339/week @ 2020-06-23 769/week @ 2020-06-30 555/week @ 2020-07-07 323/week @ 2020-07-14 459/week @ 2020-07-21 885/week @ 2020-07-28 385/week @ 2020-08-04 230/week @ 2020-08-11 113/week @ 2020-08-18 365/week @ 2020-08-25 1008/week @ 2020-09-01 401/week @ 2020-09-08 674/week @ 2020-09-15 410/week @ 2020-09-22

2,190 downloads per month
Used in transit_model_builder

AGPL-3.0-only

720KB
17K SLoC

transit_model

GitHub release (latest by date) Crates.io API documentation GitHub Workflow Status Codecov Code Coverage License: AGPL v3.0

transit_model is a Rust crate to manage, convert and enrich transit data.
This is done by implementing the NTFS model (used in navitia).

This repository regroups crates that offer enabler-libraries and binaries to convert and enrich transit data.

Additionally, transit_model is itself a library providing various functionalities. Please refer to the code, examples and documentation to discover them.

Please check documentation attached to each crate:

Setup Rust environment

transit_model is developed in Rust.

If you want to contribute or install binaries, you need to install a Rust environment: see rustup.rs

PROJ dependency

Based on PROJ, the proj crate allows the transformation of localization coordinates.

Some transit_model's crates (see each documentation) use PROJ.
So it must be installed on the system to compile and use those crates.

PROJ for binaries

Using the proj crate requires some system-dependencies installation.
The version 7.1.0 of PROJ is needed (used and tested by maintainers).

To help the installation you can execute the following command (On Debian systems):

make install_proj

PROJ installation instructions may help, too.

Using PROJ and transit_model as a developer

proj crate is a binding to the C library.

PROJ is configured as a feature of the transit_model crate.
So to use it for coding, the proj feature must be activated (cargo build --features=proj).
Then specific code should be conditionally enabled with #[cfg(feature="proj")].

NTFS Level of Support

transit_model is supporting most of NTFS format.
From the standard, some of the functionalities are not fully supported:

  • No support for Line Groups (files line_groups.txt and line_group_links.txt).
  • The field trip_short_name_at_stop in stop_times.txt introduced in version v0.10.0 (see NTFS changelog in French) is not supported.

Contributing

Please see CONTRIBUTING to know more about the code or how to test, contribute, report issues.

License

Licensed under GNU Affero General Public License v3.0

Dependencies

~10MB
~156K SLoC