C++ Python JavaScript C CSS Shell TeX
Clone or download
Pull request Compare This branch is 8927 commits behind CanalTP:dev.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
debian
documentation
fixtures
jmeter
source
.gitignore
.gitmodules
COPYING
Changelog
build_package.rst
install.rst
readme.rst
script_release.py

readme.rst

Navitia

build status

Presentation

This is the Navitia repository.

Navitia is a service providing:

  1. multi-modal journeys computation
  2. line schedules
  3. next departures
  4. explore public transport data
  5. sexy things such as isochrones

The API can be found at http://api.navitia.io/

For more information see http://www.navitia.io/ or twitter @navitia or google groups navitia

Organisation

At the root of the repository, several directories can be found:

  1. source: contains the navitia source code (c++ and python)
  2. third_party: third party developped modules
  3. documentation: all the navitia documentation
  4. (debug|release): by convention, the build repositories

Architecture overview

Navitia is made of 3 main modules:

  1. Kraken is the c++ core
  2. Jörmungandr is the python frontend
  3. Ed is the postgres database

Kraken and Jörmungandr communicate with each other through protocol buffer messages send by ZMQ.

Transportation data (in the GTFS format) or routing data (from OpenStreetMap for the moment) can be given to Ed. Ed produces a binary file used by Kraken.

documentation/diagrams/simple_archi.png

Tools

  1. Gcc as the C++ compiler (g++)
  2. Cmake for the build system
  3. Python for the api
  4. Doxygen and swagger for the automated documentation

Installation

For the installation procedure, please refer to the installation documentation

How to contribute

Fork the github repo, create a new branch from dev, and submit your pull request!

Alternatives?

Navitia is written in python/c++, here are some alternatives:

  • OpenTripPlanner : the best known, written in java
  • 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