{"id":50646631,"url":"https://github.com/OpenRailAssociation/osrd","last_synced_at":"2026-07-12T14:00:47.501Z","repository":{"id":36993071,"uuid":"203611792","full_name":"OpenRailAssociation/osrd","owner":"OpenRailAssociation","description":"An open source web application for railway infrastructure design, capacity analysis, timetabling and simulation","archived":false,"fork":false,"pushed_at":"2026-07-06T13:19:25.000Z","size":97762,"stargazers_count":638,"open_issues_count":813,"forks_count":80,"subscribers_count":10,"default_branch":"dev","last_synced_at":"2026-07-06T14:07:23.544Z","etag":null,"topics":["railway","simulation"],"latest_commit_sha":null,"homepage":"https://osrd.fr","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenRailAssociation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSES/Apache-2.0.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":"publiccode.yml","codemeta":null,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-08-21T15:21:27.000Z","updated_at":"2026-07-06T13:19:28.000Z","dependencies_parsed_at":"2025-11-29T14:09:37.826Z","dependency_job_id":"b0496521-1ba7-480d-a8e1-3886fffbf502","html_url":"https://github.com/OpenRailAssociation/osrd","commit_stats":null,"previous_names":["dgexsolutions/osrd","openrailassociation/osrd","osrd-project/osrd"],"tags_count":77,"template":false,"template_full_name":null,"purl":"pkg:github/OpenRailAssociation/osrd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRailAssociation%2Fosrd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRailAssociation%2Fosrd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRailAssociation%2Fosrd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRailAssociation%2Fosrd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenRailAssociation","download_url":"https://codeload.github.com/OpenRailAssociation/osrd/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRailAssociation%2Fosrd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35393398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-12T02:00:06.386Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["railway","simulation"],"created_at":"2026-06-07T13:00:30.181Z","updated_at":"2026-07-12T14:00:47.494Z","avatar_url":"https://github.com/OpenRailAssociation.png","language":"TypeScript","funding_links":[],"categories":["Transport and Mobility"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://osrd.fr/en/\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"/assets/branding/osrd_small_dark.svg\"\u003e\n      \u003cimg width=\"340px\" style=\"max-width: 100%;\" src=\"/assets/branding/osrd_small.svg\" alt=\"OSRD Logo\" alt=\"OSRD logo\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"https://publiccode.eu/\"\u003e\n    \u003cimg src=\"assets/PMPC_badge.svg\" width=\"110px\" alt=\"Public Money Public Code\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://osrd.fr/en/docs/guides/contribute/\"\u003e\u003cimg src=\"https://img.shields.io/github/contributors-anon/OpenRailAssociation/osrd\" alt=\"Contributors badge\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/OpenRailAssociation/osrd/blob/dev/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-LGPL-blue.svg\" alt=\"LGPL License badge\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/OpenRailAssociation/osrd/actions/workflows/build.yml\"\u003e\u003cimg src=\"https://github.com/OpenRailAssociation/osrd/actions/workflows/build.yml/badge.svg\" alt=\"Build Status\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://api.reuse.software/info/github.com/OpenRailAssociation/osrd\"\u003e\u003cimg src=\"https://api.reuse.software/badge/github.com/OpenRailAssociation/osrd\" alt=\"REUSE status\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/OpenRailAssociation/technical-committee/blob/main/incubation-process.md\"\u003e\u003cimg src=\"https://openrailassociation.org/badges/openrail-project-stage-2.svg\" alt=\"Openrail Incubation Stage\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## What is OSRD?\n\nOSRD (Open Source Railway Designer) is an open source web application for railway infrastructure design,\ncapacity analysis, timetabling and simulation and short term path request.\n\nIt's free and open-source forever!\n\nLearn more about the project on [osrd.fr](https://osrd.fr/en/).\n\n## Demo\n\nAccess the demo at [demo.osrd.fr](https://demo.osrd.fr).\n\n\u003e [!IMPORTANT]\n\u003e This environment is not intended for use in production. It is refreshed daily, and the data entered is accessible to everyone.\n\n## ⚠️ Development status\n\nOSRD is still in active development.\nUser and programming interfaces are not entirely stable and are still occasionally modified.\nIf you rely on OSRD, be prepared to deal with regular changes.\n\n## Languages\n\nOSRD support multiple languages. Here is the translation status for the different languages.\nIntegrated means that users can actually activate the language in the application.\nIf you want to contribute to the translation, you can do so easily with [Weblate](https://hosted.weblate.org/engage/osrd/).\n\n| **Language**  |                                                          **Status**                                                         | **Integrated** |\n|---------------|:---------------------------------------------------------------------------------------------------------------------------:|:--------------:|\n| 🇬🇧 English       | [![Translation status](https://hosted.weblate.org/widget/osrd/-/en/svg-badge.svg)](https://hosted.weblate.org/engage/osrd/) |        ✅      |\n| 🇫🇷 French        | [![Translation status](https://hosted.weblate.org/widget/osrd/-/fr/svg-badge.svg)](https://hosted.weblate.org/engage/osrd/) |        ✅      |\n| 🇩🇪 German        | [![Translation status](https://hosted.weblate.org/widget/osrd/-/de/svg-badge.svg)](https://hosted.weblate.org/engage/osrd/) |        ✅      |\n| 🇵🇹 Portuguese    | [![Translation status](https://hosted.weblate.org/widget/osrd/-/pt/svg-badge.svg)](https://hosted.weblate.org/engage/osrd/) |        ✅      |\n| 🇪🇸 Spanish       | [![Translation status](https://hosted.weblate.org/widget/osrd/-/es/svg-badge.svg)](https://hosted.weblate.org/engage/osrd/) |        ❌      |\n\n## Getting Started\n\nTo compile and run the application with an example infrastructure:\n\n```sh\n# build and run the entire stack\ndocker compose up -d --build\n\n# import an small example infrastructure (\"small_infra\")\n./scripts/load-railjson-infra.sh small_infra tests/data/infras/small_infra/infra.json\n\n# import rolling stocks with realistic characterics, representative of the industry\n./scripts/load-railjson-rolling-stock.sh tests/data/rolling_stocks/realistic/*.json --force\n\n# import more rolling stocks\n./scripts/load-railjson-rolling-stock.sh tests/data/rolling_stocks/*.json\n\n# open the web app\nxdg-open http://localhost:4000/\n```\n\nLinux or WSL users can use `./osrd-compose host` instead of `docker compose` to enable host networking: it can be useful to launch services in a debugger.\n\nmacOS users on Apple Silicon should make sure to set an arm64 image name for Postgres/PostGIS (to prevent slow amd64 emulation). This image name can be set by running `export OSRD_POSTGIS_IMAGE='nickblah/postgis:16-postgis-3'` before the first `docker compose` command.\n\nThe last-minute train (STDCM) module needs additional setup: start by creating a scenario, copy its ID from its URL, then run:\n\n```sh\ndocker compose exec editoast editoast stdcm-search-env set-from-scenario \u003cid\u003e\n```\n\nIf you need to use speed limits tags and loading gauge, run this:\n\n```sh\necho '{ \"LG1\": [], \"LG2\": [] }' \u003e /tmp/allowed_tracks.json\ndocker cp /tmp/allowed_tracks.json osrd-editoast:/tmp/\ndocker compose exec editoast editoast stdcm-search-env set-from-scenario \u003cid\u003e --speed-limit-tags \"CC100|100\" \"CC90|90\" \"CC200|200\" --default-speed-limit-tag \"CC100\" /tmp/allowed_tracks.json\n```\n\n### Alternative with `nix` and `process-compose` (experimental)\n\nThe project also attempts to maintain a `flake.nix` to have a full development\nenvironment. If you are a user of `nix` package manager, you can `nix shell` to\nenter a shell where all the necessary components to develop are available.\nFirst, you need to set up 2 things:\n- `export OSRD_PATH=\"$(pwd)\"`\n\nThen, you can start the stack with the two following commands.\n\n```sh\n# Launch all the external services, still relies on Docker\n./osrd-compose up --detach postgres rabbitmq valkey openfga jaeger s3\n# Launch the OSRD stack\nprocess-compose\n```\n\n\u003e [!WARNING]\n\u003e Most scripts in the `scripts/` folder depends on using the Docker stack. So\n\u003e use them with precaution if you start the stack with `process-compose`: they\n\u003e may work, or crash, or produce weird behaviors.\n\n## Working on a single component\n\nEach component has a _justfile_ to run usual development tasks. Install [just](https://github.com/casey/just#installation) and run it to see available recipes. All the components include:\n\n* run\n* install\n* test\n* format\n* lint\n* fix-lint\n\n## Deployment\n\nTo deploy the application on a server, check out the [deployment guide](https://osrd.fr/en/docs/guides/deploy/).\n\n## Get in touch\n\nSend an email at \u003ccontact@osrd.fr\u003e, [open an issue](https://github.com/OpenRailAssociation/osrd/issues/new?labels=kind%3Aquestion\u0026template=question.yaml), or join the [#public-general:osrd.fr](https://matrix.to/#/#public-general:osrd.fr) matrix channel.\n\n## Sponsors\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/sponsors/ministere-amenagement-territoire-decentralisation.png\" width=\"150px\" height=\"150px\" alt=\"Ministère de l'Aménagement du Territoire et de la Décentralisation\"/\u003e\n  \u003cimg src=\"assets/sponsors/european-union.svg\" width=\"150px\" height=\"150px\" alt=\"European Union\"/\u003e\n  \u003cimg src=\"assets/sponsors/sncf-reseau.svg\" width=\"150px\" height=\"150px\" alt=\"SNCF Réseau\"/\u003e\n\u003c/p\u003e\n\n## License\n\nOSRD is licensed under the GNU Lesser General Public License v3.0, see LICENSE.\n\nCopyright © 2022 The OSRD Contributors\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpenRailAssociation%2Fosrd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOpenRailAssociation%2Fosrd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpenRailAssociation%2Fosrd/lists"}