{"id":13423631,"url":"https://github.com/mapbox/node-or-tools","last_synced_at":"2025-03-15T17:32:02.940Z","repository":{"id":47268116,"uuid":"88677728","full_name":"mapbox/node-or-tools","owner":"mapbox","description":"Node.js bindings for or-tools vehicle routing problems","archived":false,"fork":false,"pushed_at":"2023-12-18T09:32:27.000Z","size":2000,"stargazers_count":148,"open_issues_count":36,"forks_count":48,"subscribers_count":121,"default_branch":"master","last_synced_at":"2025-02-28T16:08:10.544Z","etag":null,"topics":["logistics","optimization","routing","tsp","vrp"],"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/mapbox.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-18T22:59:27.000Z","updated_at":"2025-01-04T08:33:02.000Z","dependencies_parsed_at":"2024-06-21T17:40:43.592Z","dependency_job_id":"c25176aa-6779-416b-ad57-3c768d846655","html_url":"https://github.com/mapbox/node-or-tools","commit_stats":{"total_commits":115,"total_committers":15,"mean_commits":7.666666666666667,"dds":0.3913043478260869,"last_synced_commit":"e0ec2a7975c28cfd528ac2163eaadbdf1fdaae4f"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapbox%2Fnode-or-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapbox%2Fnode-or-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapbox%2Fnode-or-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapbox%2Fnode-or-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mapbox","download_url":"https://codeload.github.com/mapbox/node-or-tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243767067,"owners_count":20344865,"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":["logistics","optimization","routing","tsp","vrp"],"created_at":"2024-07-31T00:00:39.308Z","updated_at":"2025-03-15T17:32:02.396Z","avatar_url":"https://github.com/mapbox.png","language":"C++","readme":"# node-or-tools\n\n[![Build Status](https://travis-ci.org/mapbox/node-or-tools.svg?branch=master)](https://travis-ci.org/mapbox/node-or-tools)\n\nNodeJS bindings for or-tools Travelling Salesman Problem (TSP) and Vehicle Routing Problem (VRP) solvers.\n\nSee [API.md](API.md) for documentation.\n\nSolving TSP and VRP problems always starts out with having a `m x m` cost matrix for all pairwise routes between all locations.\nWe recommend using the [Mapbox Directions Matrix](https://www.mapbox.com/api-documentation/navigation/#matrix) service when optimizing travel times.\n\n[![Example](https://raw.githubusercontent.com/mapbox/node-or-tools/master/example/solution.png?token=AAgLiX1m1BDa8ll0Lsk0xc6fz0RgQA1Lks5Y-VmAwA)](https://github.com/mapbox/node-or-tools/blob/master/example/solution.geojson)\n\n### Quick Start\n\n    npm install node_or_tools\n\n```c++\nvar ortools = require('node_or_tools')\n\nvar VRP = new ortools.VRP(solverOpts);\n\nVRP.Solve(searchOpts, function (err, solution) {\n  // ..\n});\n```\n\nSee [API.md](API.md) for interface documentation and [the example](./example/README.md) for a small self-contained example.\n\nWe ship pre-built native binaries (for Node.js LTS 4 and 6 on Linux and macOS).\nYou will need a compatible C++ stdlib, see below if you encounter issues.\nBuilding from source is supported via the `--build-from-source` flag.\n\n#### Ubuntu 16.04\n\nYou're fine. The system's stdlib is recent enough.\n\n#### Ubuntu 14.04\n\n```\napt install software-properties-common\nadd-apt-repository ppa:ubuntu-toolchain-r/test\napt update\napt install libstdc++-5-dev\n```\n\n### Tests\n\n    npm test\n\n\n### Building - Undefined Symbols\n\nIf your C++ compiler and stdlib are quite recent they will default to a new ABI.\nMason packages are still built against an old ABI.\nIf you see `undefined symbols` errors force the stdlib to use the old ABI by setting:\n\n    export CXXFLAGS=\"-D_GLIBCXX_USE_CXX11_ABI=0\"\n\nand re-build the project.\n\n### Releases\n\n- Push commit with `[publish binary]` on master\n- Wait for Travis to build and publish binaries, check the AWS bucket if in doubt\n- Tag the release `git tag vx.y.z -a` on master, `git push origin vx.y.z`\n- Then `npm login`, `npm publish` to npm\n- Make Github Release for tag\n\n### References\n\nRouting Interfaces\n- [RoutingModel](https://github.com/google/or-tools/blob/v5.1/src/constraint_solver/routing.h#L14)\n- [RoutingSearchParameters](https://github.com/google/or-tools/blob/v5.1/src/constraint_solver/routing_parameters.proto#L28-L29)\n- [RoutingModelParameters](https://github.com/google/or-tools/blob/v5.1/src/constraint_solver/routing_parameters.proto#L263-L264)\n\nMore or-tools\n- Manual: [TSP](https://acrogenesis.com/or-tools/documentation/user_manual/manual/TSP.html) and [VRP](https://acrogenesis.com/or-tools/documentation/user_manual/manual/VRP.html)\n- [Examples](https://github.com/google/or-tools/tree/v5.1/examples/cpp)\n- [Reference](https://developers.google.com/optimization/reference/)\n\nTests\n- [npmjs.com/package/tap](https://www.npmjs.com/package/tap)\n- [node-tap.org](http://www.node-tap.org)\n\nNode bindings\n- [NAN2](https://github.com/nodejs/nan#api)\n- [GYP](https://gyp.gsrc.io)\n\n### License\n\nCopyright © 2017 Mapbox\n\nDistributed under the MIT License (MIT).\n","funding_links":[],"categories":["C++","others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmapbox%2Fnode-or-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmapbox%2Fnode-or-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmapbox%2Fnode-or-tools/lists"}