{"id":13423565,"url":"https://github.com/VROOM-Project/vroom","last_synced_at":"2025-03-15T17:31:55.006Z","repository":{"id":37412942,"uuid":"41960855","full_name":"VROOM-Project/vroom","owner":"VROOM-Project","description":"Vehicle Routing Open-source Optimization Machine","archived":false,"fork":false,"pushed_at":"2024-10-29T08:55:35.000Z","size":3870,"stargazers_count":1340,"open_issues_count":42,"forks_count":336,"subscribers_count":62,"default_branch":"master","last_synced_at":"2024-10-29T09:54:28.667Z","etag":null,"topics":["cvrp","delivery","logistics","optimization","pdptw","pickup","solver","travelling-salesman","tsp","vehicle-routing-problem","vroom","vrp","vrptw"],"latest_commit_sha":null,"homepage":"http://vroom-project.org/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VROOM-Project.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-05T12:58:42.000Z","updated_at":"2024-10-29T08:54:28.000Z","dependencies_parsed_at":"2023-09-23T05:27:15.606Z","dependency_job_id":"9a948e3a-f024-4dc2-981a-9f86bbb5369f","html_url":"https://github.com/VROOM-Project/vroom","commit_stats":{"total_commits":2412,"total_committers":36,"mean_commits":67.0,"dds":"0.13971807628524047","last_synced_commit":"cb357b345f887077ddaf17f4cc7faa3bddde5080"},"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VROOM-Project%2Fvroom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VROOM-Project%2Fvroom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VROOM-Project%2Fvroom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VROOM-Project%2Fvroom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VROOM-Project","download_url":"https://codeload.github.com/VROOM-Project/vroom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243766950,"owners_count":20344846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cvrp","delivery","logistics","optimization","pdptw","pickup","solver","travelling-salesman","tsp","vehicle-routing-problem","vroom","vrp","vrptw"],"created_at":"2024-07-31T00:00:37.600Z","updated_at":"2025-03-15T17:31:54.405Z","avatar_url":"https://github.com/VROOM-Project.png","language":"C++","readme":"# Vehicle Routing Open-source Optimization Machine\n\n_Good solutions, fast._\n\n---\n\n## About\n\nVROOM is an open-source optimization engine written in C++20 that aim\nat providing good solutions to various real-life [vehicle routing\nproblems](https://en.wikipedia.org/wiki/Vehicle_routing_problem) (VRP)\nwithin a small computing time.\n\nThe project has been initiated by [Verso](https://verso-optim.com/) to\npower its [route optimization\nAPI](https://blog.verso-optim.com/category/route-optimization/api/).\n\n## Supported problem types\n\nVROOM can solve several well-known types of vehicle routing problems\n(VRP).\n\n- TSP (travelling salesman problem)\n- CVRP (capacitated VRP)\n- VRPTW (VRP with time windows)\n- MDHVRPTW (multi-depot heterogeneous vehicle VRPTW)\n- PDPTW (pickup-and-delivery problem with TW)\n\nVROOM can also solve any mix of the above problem types.\n\n## Features\n\nVROOM models a VRP with a description of resources (`vehicles`),\nsingle-location pickup and/or delivery tasks (`jobs`) and\npickup-and-delivery tasks that should happen within the same route\n(`shipments`).\n\n### Job and shipment\n\n- Delivery/pickup amounts on arbitrary number of metrics\n- Service time windows\n- Service duration\n- Skills\n- Priority\n\n### Vehicle\n\n- Capacity on arbitrary number of metrics\n- Skills\n- Working hours\n- Driver breaks\n- Start and end defined on a per-vehicle basis\n- Start and end can be different\n- Open trip optimization (only start or only end defined)\n\n## Supported routing engines\n\nVROOM works out-of-the-box on top of several open-source routing\nengines.\n\n- [OSRM](http://project-osrm.org/)\n- [Openrouteservice](https://openrouteservice.org/)\n- [Valhalla](https://github.com/valhalla/valhalla)\n\nVROOM can also use a custom cost matrix computed from any other\nsource.\n\n## Getting started\n\n### Demo\n\n- The [demo frontend](http://map.vroom-project.org/) provides a simple\nuser interface for quick tests.\n- The [demo\nserver](https://github.com/VROOM-Project/vroom/wiki/Demo-server) makes\nit easy to send sample optimization requests for testing purposes.\n\n### Setup your own VROOM stack\n\n#### Solving engine\n\nSeveral options are available to get `vroom` running on command-line.\n\n1. Build from source following [the wiki\ninstructions](https://github.com/VROOM-Project/vroom/wiki/Building).\n2. Use\n[`vroom-docker`](https://github.com/VROOM-Project/vroom-docker).\n\n### Command-line usage\n\nRefer to [this wiki\npage](https://github.com/VROOM-Project/vroom/wiki/Usage)\n\n#### Http wrapper\n\n[`vroom-express`](https://github.com/VROOM-Project/vroom-express) is a\nsimple wrapper to use `vroom` with http requests. It's already bundled\nin the `vroom-docker` setup.\n\n#### Using libvroom from C++\n\nThe project can also used as a library from any C++ project, refer to\n[this wiki\npage](https://github.com/VROOM-Project/vroom/wiki/Using-libvroom).\n\n## Tests\n\n### CI builds\n\n[![vroom](https://github.com/VROOM-Project/vroom/actions/workflows/vroom.yml/badge.svg)](https://github.com/VROOM-Project/vroom/actions/workflows/vroom.yml)\n\n[![vroom + libosrm](https://github.com/VROOM-Project/vroom/actions/workflows/vroom_libosrm.yml/badge.svg?branch=master)](https://github.com/VROOM-Project/vroom/actions/workflows/vroom_libosrm.yml)\n\n[Github Actions](https://github.com/VROOM-Project/vroom/actions) are\nused to check the build across various compilers and settings.\n\n### Functional tests\n\nSeveral sets of instances are used.\n\n1. Benchmark instances from papers (see [wiki page with\nresults](https://github.com/VROOM-Project/vroom/wiki/Benchmarks)).\n2. Custom random instances generated to target typical use-cases and\nconstraints settings.\n3. Real-life instances.\n\nAcademic and custom benchmarks are heavily used during development for\neach new core feature. Every new release is checked against all\nbenchmarks classes to spot potential regressions with regard to both\nsolution quality and computing times.\n\n## Reference in publications\n\nTo cite VROOM in publications, please use:\n\n```bibtex\n@manual{vroom_v1.14,\n   title = {{VROOM v1.14, Vehicle Routing Open-source Optimization Machine}},\n   author = {Coupey, Julien and Nicod, Jean-Marc and Varnier, Christophe},\n   year = 2024,\n   organization = {Verso (\\url{https://verso-optim.com/})},\n   address = {Besançon, France},\n   note = {\\url{http://vroom-project.org/}}\n }\n ```\n","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVROOM-Project%2Fvroom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FVROOM-Project%2Fvroom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVROOM-Project%2Fvroom/lists"}