Welcome to the Navitia repository. Navitia is a service providing:
- multi-modal journeys computation
- line schedules
- next departures
- explore public transport data
- sexy things such as isochrones
The API can be found at http://api.navitia.io/
For more information see
- documentation http://doc.navitia.io
- main web site http://www.navitia.io
- playground http://canaltp.github.io/navitia-playground/
- twitter @navitia https://twitter.com/navitia
- google groups navitia https://groups.google.com/d/forum/navitia
- channel #navitia on irc.freenode.net
Want to test the API ?
For a more friendly interface you can use the API through navitia playground
Want to use you own datasets or infrastructure ?
The easiest way to do have your own navitia is to use the navitia docker-compose.
If you don't want to use the prebuild docker images you can use the fabric scripts we use to deploy to api.navitia.io.
WARNING: Those scripts should be usable, but they are not meant to be completly generics and are designed for own servers architecture.
Use this only if the docker is not fit for your needs and if you are an experienced user
Want to dev in navitia ?
if you want to build navitia, please refer to the installation documentation
You can also check the automated build script which is meant as a step by step tutorial for compiling and using navitia with ubuntu 16.04
At the root of the repository, several directories can be found:
- source: contains the navitia source code (c++ and python)
- third_party: third party developped modules
- documentation: all the navitia documentation
- (debug|release): by convention, the build repositories
Navitia is made of 3 main modules:
- Kraken is the c++ core
- Jörmungandr is the python frontend
- Ed is the postgres database
Kraken and Jörmungandr communicate with each other through protocol buffer messages send by ZMQ.
More information here: https://github.com/CanalTP/navitia/wiki/Architecture
- Gcc (or clang) as the C++ compiler (g++)
- Cmake for the build system
- Python for the api
How to contribute
Fork the github repo, create a new branch from dev, and submit your pull request!
Make sure to run the tests before submiting the pull request (make test in the build directory)
Are there many people contributing? Yes: https://www.youtube.com/watch?v=GOLfMTMGVFI
Navitia is written in python/c++, here are some alternatives:
- OpenTripPlanner : written in java. More information here https://github.com/CanalTP/navitia/wiki/OpenTripPlanner-and-Navitia-comparison
- rrrr : the lightest one, written in python/c
- Synthese : a full stack, with CMS, written all in c++
- Mumoro : a R&D MUltiModal MUltiObjective ROuting algorithm