Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Provides read-only bindings to the Open Source Routing Machine - OSRM, a routing engine for OpenStreetMap data implementing high-performance algorithms for shortest paths in road networks.
build config | status |
---|---|
Linux/OS X |
See docs/api.md for extensive API documentation. You can find a simple example in example/server.js
.
C++14 capable platforms include:
An installation error like below indicates your system does not have a modern enough libstdc++/gcc-base toolchain:
Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.20 not found (required by /node_modules/osrm/lib/binding/osrm.node)
If you are running Ubuntu older than 16.04 you can easily upgrade your libstdc++ version like:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update -y
sudo apt-get install -y libstdc++-5-dev
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'libstdc++-5-dev' ]
dependencies:
pre:
- sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- sudo -E apt-get upgrade -y
- sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install libstdc++-5-dev
By default, binaries are provided for:
On those platforms no external dependencies are needed.
Just do:
npm install osrm
However other platforms will fall back to a source compile: see Source Build for details.
The node-osrm
module consumes data processed by OSRM core.
For this purpose we ship the binaries osrm-extract
and osrm-contract
with the node module.
For example if you want to prepare a Berlin dataset the following will run the osrm toolchain to do that:
export PATH="./lib/binding/:$PATH"
wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf
osrm-extract berlin-latest.osm.pbf -p profiles/car.lua
osrm-contract berlin-latest.osrm
You can then use the dataset like:
const OSRM = require('osrm');
let osrm = new OSRM('berlin-latest.osrm');
osrm.route({coordinates: [[13.388860,52.517037], [13.39319,52.533976]]}, (err, result) => {
if (err) return;
console.log(`duration: ${result.routes[0].duration} distance: ${result.routes[0].distance}`);
});
See the full documentation for more examples.
You can build from source by using mason. Just go to your node-osrm folder and run:
make
This will download and build the current version of osrm-backend and set all needed variables.
Then you can test like
make test
To rebuild node-osrm after any source code changes to src/node_osrm.cpp
simply type again:
make
If you wish to have a different version of osrm-backend build on the fly, change the osrm_release
variable in package.json
and rebuild:
make clean
make && make test
If you do wish to build node-osrm against an existing osrm-backend we assume it is installed and will be found by pkg-config.
To check if you installed it correctly the following command and verify the output:
which osrm-extract
which osrm-contract
which osrm-datastore
pkg-config libosrm --variable=prefix
See the Project-OSRM wiki for details in how to build osrm-backend from source.
Now you can build node-osrm
:
git clone https://github.com/Project-OSRM/node-osrm.git
cd node-osrm
mkdir build
cd build
cmake ..
make clean
make
make test
After setting up a Source Build you can make changes to the code and rebuild like any other cmake project:
cd build make
To rebuild using with a full re-configuration do:
make
If you want to see all the arguments sent to the compiler do:
make verbose
If you want to build in debug mode (-DDEBUG -O0) then do:
make debug
Run the tests like:
make test
FAQs
The Open Source Routing Machine is a high performance routing engine written in C++14 designed to run on OpenStreetMap data.
The npm package osrm receives a total of 364 weekly downloads. As such, osrm popularity was classified as not popular.
We found that osrm demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 21 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.