A routing engine and API service based on Open data. Its current focus are flexibility, speed and stability in that order.
Check out the API examples provided as a Postman collection. Simply import it and have fun :)
For a demo see try.hyposfer.com (it will take a few seconds on the first run).
By default kamal
will run at localhost:3000.
You can install kamal
from clojars using lein or use our docker image.
$ git clone https://github.com/hiposfer/kamal.git && cd kamal
## set up environment variables
$ export FRANKFURT_AREA_NAME="Frankfurt am Main"
$ export FRANKFURT_AREA_GTFS=resources/test/frankfurt.gtfs.zip
## preprocess input data -> output to ./resources/test
$ lein run -m hiposfer.kamal.preprocessor
## compile application - you can run it with lein as well
$ lein with-profile release uberjar
export FRANKFURT_AREA_EDN resources/test/frankfurt.edn.gz
$ java -jar target/kamal.jar
Use our latest docker image:
$ ## setup env vars like above and pass them to docker
$ docker run -it -p 3000:3000 hiposfer/kamal
We follow Stuart Sierra's reload workflow.
Our system configuration is created by reading the environment variables. An example
of such config can be found in hiposfer.kamal.dev/env
. As you can see there, it is
also possible to create a system by providing the configuration directly.
- Start a REPL
- Load the
hiposfer.kamal.dev
namespace - Run the
hiposfer.kamal.dev/refresh!
function - Perform your changes
- if your changes modify the network build process. Repeat from
3.
- keep making your changes in the repl otherwise
- if your changes modify the network build process. Repeat from
In other words:
$ git clone https://github.com/hiposfer/kamal.git && cd kamal
$ lein repl
hiposfer.kamal.core=> (use 'hiposfer.kamal.dev)
hiposfer.kamal.core=> (hiposfer.kamal.dev/refresh!)
And then browse to localhost:3000
kamal
consumes General Transit Feed Specification (GTFS) and Open Street Map files.
kamal
is very routing oriented, thus we rely on the awesome Overpass-API for
filtering of Open Street Map data. Check out our pedestrian
filtering query
Here.
You can customize it however you want; once you are done, simply save the query run the
preprocessing script again with lein preprocess resources/
. This will preprocess
all gtfs configs in your environment variables with (automatically) downloaded osm data.
kamal
is distributed under LGPL v3