{"id":20453859,"url":"https://github.com/anyways-open/itinero-transit-server","last_synced_at":"2026-04-16T21:02:27.711Z","repository":{"id":38051182,"uuid":"157858012","full_name":"anyways-open/itinero-transit-server","owner":"anyways-open","description":"Wrapper around itinero-transit to make it available as HTTP-service","archived":false,"fork":false,"pushed_at":"2022-12-08T09:07:17.000Z","size":2532,"stargazers_count":2,"open_issues_count":6,"forks_count":0,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2025-03-05T10:14:04.187Z","etag":null,"topics":["routing-engine","transit"],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anyways-open.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-16T11:25:22.000Z","updated_at":"2022-11-04T13:40:43.000Z","dependencies_parsed_at":"2023-01-25T09:45:12.343Z","dependency_job_id":null,"html_url":"https://github.com/anyways-open/itinero-transit-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anyways-open/itinero-transit-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyways-open%2Fitinero-transit-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyways-open%2Fitinero-transit-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyways-open%2Fitinero-transit-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyways-open%2Fitinero-transit-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anyways-open","download_url":"https://codeload.github.com/anyways-open/itinero-transit-server/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyways-open%2Fitinero-transit-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31904067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["routing-engine","transit"],"created_at":"2024-11-15T11:14:09.398Z","updated_at":"2026-04-16T21:02:27.651Z","avatar_url":"https://github.com/anyways-open.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":" # itinero-transit-server\n\n[![Build status](https://build.anyways.eu/app/rest/builds/buildType:(id:anyways_routing_ItineroTransitServer)/statusIcon)](https://build.anyways.eu/viewType.html?buildTypeId=anyways_routing_ItineroTransitServer)  \n\nThe Itinero-Transit-Server is a wrapper around the core library [itinero-transit](https://github.com/openplannerteam/itinero-transit). The core library offers routing over a public transport network, this small wrapper makes that available via HTTPS.\n\nA demo is deployed [here](https://routing.anyways.eu/transit/index.html).\nThe full documentation (as swagger file) can be found [there as well](http://routing.anyways.eu/transitapi/swagger/index.html).\n\nIf the server is offline, a backup swagger file is available [in the repo too](docs/swagger.json). To load this interactively:\n\n- Open [https://petstore.swagger.io/](https://petstore.swagger.io/).\n- Paste [this url of the raw spec](https://raw.githubusercontent.com/anyways-open/itinero-transit-server/master/docs/swagger.json) in the search box at the top.\n\n## Getting started\n\nThis project assumes that you have a working dotnet environment on your Linux device. If you don't have dotnet, follow [this guide](https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x)\n\n        # Clone the project\n        git clone git@github.com:anyways-open/itinero-transit-server.git\n        cd itinero-transit-server\n        # Start the server\n        cd src/Itinero.Transit.Api/\n        dotnet run\n\nThe program will now load a bunch of data for the Belgian Public Transport agencies.\n\nHave a look at the [status page](http://localhost:5000/status) how your server is doing. The loaded time windows indicate what dataset has been loaded already. In the loaded parts, planning is possible. There is no need to wait until every PT-operator has been completely loaded.\n\nWith the server running, visit the [API-documentation page](http://127.0.0.1:5000/swagger/index.html) to see what is possible.\n\n## Project overview\n\nFirst, a small overview of the directories in the git repo:\n\n- `src` contains all the source code\n- `test` contains all the test code\n- `docs` contains an example swagger file\n- `deployment` contains a script to deploy this as a docker container on a server\n\n### Source overview\n\nThe project itself is a pretty straightforward C#/ASP.net project. Requests come in via HTTP and are delegated to a controller-class in `Controllers/`. They return an appropriate `Model` as JSON.\n\nThe controllers themselfs do not contain the algoirthms themselves. These are contained in `Logic/`. One important class in `Logic/` is `State.cs`. The `State` contains the _global variables_, namely a pointer to the transitdbs which the logic and controllers use.\n\nAs State is a central piece in the app, go read it now. Every field is documented.\n\nThe next important class is `Startup` where the State is constructed.\n\nOverview of other `Logic`: classes:\n\n- `ChangeableMaxNumberOfTransferFilter` filters journeys based on a maximum number of total transfers - but this setting can be changed halfway calculations if needed. This is one of the few classes which has a changeable state (most classes only have readonly fields)\n- ImportanceCounter counts for each stop how many connections there are to estimate their weight in search\n- JourneyBuilder creates journeys based on the passed search criteria\n- JourneyTranslator creates a Model.Journey based on a journey\n- NameIndex contains a trie for fuzzy search\n- NameIndexBuilder builds such a trie\n- State contains the global state\n- TransitDbFactory reads the config, creates transitDbs for them and starts loading them\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanyways-open%2Fitinero-transit-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanyways-open%2Fitinero-transit-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanyways-open%2Fitinero-transit-server/lists"}