All Projects → openvenues → Node Postal

openvenues / Node Postal

Licence: mit
NodeJS bindings to libpostal for fast international address parsing/normalization

Projects that are alternatives of or similar to Node Postal

imgui-java
JNI based binding for Dear ImGui
Stars: ✭ 270 (+63.64%)
Mutual labels:  native, binding
Conari
🧬 Platform for unmanaged memory, pe-modules, related PInvoke features, and more for: Libraries, Executable Modules, enjoy using of the unmanaged native C/C++ in .NET world, and other raw binary data …
Stars: ✭ 138 (-16.36%)
Mutual labels:  native, binding
Pypostal
Python bindings to libpostal for fast international address parsing/normalization
Stars: ✭ 504 (+205.45%)
Mutual labels:  address, binding
hexen-dll-injector
HEX-EN DLL Injector
Stars: ✭ 20 (-87.88%)
Mutual labels:  native, binding
Expostal
Elixir binding for Libpostal - a library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.
Stars: ✭ 80 (-51.52%)
Mutual labels:  address, binding
React Native Directed Scrollview
UNMAINTAINED- see below. A natively implemented scrollview component which lets you specify different scroll directions for child content.
Stars: ✭ 139 (-15.76%)
Mutual labels:  native
Go Sdk
Dapr SDK for go
Stars: ✭ 149 (-9.7%)
Mutual labels:  binding
Proton Native
A React environment for cross platform desktop apps
Stars: ✭ 10,834 (+6466.06%)
Mutual labels:  native
Ofxremoteui
OpenFrameworks addon serves any number of variables (bool, float, int, enum, string, ofColor) on the network, so that you can modify from outside the OF app. Includes a native OSX Client. OSC based.
Stars: ✭ 132 (-20%)
Mutual labels:  native
Vanitysearch
Bitcoin Address Prefix Finder
Stars: ✭ 160 (-3.03%)
Mutual labels:  address
Ginrpc
gin auto binding,grpc, and annotated route,gin 注解路由, grpc,自动参数绑定工具
Stars: ✭ 157 (-4.85%)
Mutual labels:  binding
Gta V Data Dumps
GTA V Data dumps useful for modding & scripting
Stars: ✭ 148 (-10.3%)
Mutual labels:  native
Jpegkit Android
Efficient JPEG operations for Android without the risk of an OutOfMemoryException.
Stars: ✭ 154 (-6.67%)
Mutual labels:  native
Stunning Signature
Native Signature Verification For Android (with example)
Stars: ✭ 139 (-15.76%)
Mutual labels:  native
Pangolin
Python binding of 3D visualization library Pangolin
Stars: ✭ 157 (-4.85%)
Mutual labels:  binding
React Nodegui Starter
Starter repository for react based native desktop apps using react-nodegui
Stars: ✭ 132 (-20%)
Mutual labels:  native
Purescript Presto
Write Apps like Mathematical Equations!
Stars: ✭ 149 (-9.7%)
Mutual labels:  native
Cs2cpp
C# to C++ transpiler (Cs2Cpp) (Powered by Roslyn)
Stars: ✭ 155 (-6.06%)
Mutual labels:  native
Xcrash
🔥 xCrash provides the Android app with the ability to capture java crash, native crash and ANR. No root permission or any system permissions are required.
Stars: ✭ 148 (-10.3%)
Mutual labels:  native
Area Puppeteer
基于 puppeteer 的中国行政区域抓取爬虫
Stars: ✭ 144 (-12.73%)
Mutual labels:  address

node-postal

Build Status npm

These are the NodeJS bindings to libpostal, a fast, multilingual NLP library for parsing/normalizing physical addresses. libpostal is written in C because virtually every other language can bind to C.

Usage

var postal = require('node-postal');

// Expansion API
postal.expand.expand_address('V XX Settembre, 20');

// Parser API
postal.parser.parse_address('Barboncino 781 Franklin Ave, Crown Heights, Brooklyn, NY 11238');

Installation

Before using the Node bindings, you must install the libpostal C library. Make sure you have the following prerequisites:

On Ubuntu/Debian

sudo apt-get install curl autoconf automake libtool pkg-config

On CentOS/RHEL

sudo yum install curl autoconf automake libtool pkgconfig

On Mac OSX

brew install curl autoconf automake libtool pkg-config

Installing libpostal

git clone https://github.com/openvenues/libpostal
cd libpostal
./bootstrap.sh
./configure --datadir=[...some dir with a few GB of space...]
make
sudo make install

# On Linux it's probably a good idea to run
sudo ldconfig

Install node-gyp

Then install node-gyp system-wide:

sudo npm install -g node-gyp

Installing node-gyp on Linux (Ubuntu)

First make sure you have:

  1. gcc, g++ and make (sudo apt-get install build-essential on Ubuntu)
  2. NodeJS with all the development headers (if using a package manager like apt-get, follow the instructions here: https://nodejs.org/en/download/package-manager/)
  3. python 2.7

Installing the Node bindings

npm install openvenues/node-postal

Compatibility

node-postal is tested on most major versions of Node (0.10+) in continuous integration. The C++ bindings are written using Nan, which abstracts the API changes across various versions of V8, so the latest versions of Node will likely work.

If you're having trouble compiling, post a Github issue with your OS and Node versions along with the output of npm install / node-gyp rebuild.

Tests

To run the unit tests:

npm test

Troubleshooting

Installing libpostal: node-postal is a thin wrapper around libpostal, which is written in C. Installing node-postal with npm will not install libpostal as a dependency. The install steps described above will install it in standard locations for your OS. For OS X and Linux, that's /usr/local/include and /usr/local/lib. node-postal will look in these locations for the C libraries. If you have problems installing node-postal, check there for recently installed libpostal libraries.

Downloading Large Files The make process downloads ~750MB of data, ~2GB unzipped (note: these are production-quality machine learning models trained on over a billion addresses, that's how much disk/memory it takes). Make sure the --datadir argument to configure, which requires an absolute path, has enough room to accommodate the models. If you get errors after downloading, e.g.:

make[3]: *** [all-local] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

there may be problems with subsequent install steps. Occasionally something will go wrong and it will give up downloading. Once downloading is complete, the make script will unpack the langauge_classifier.tar.gz.X files. If you see these files, your download may have stopped. Try running the make script again.

Special Thanks

Lucas Hrabovsky (https://github.com/imlucas) for information and examples of repos using Nan, node-gyp, etc.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].