rustpostal

Crates.iorustpostal
lib.rsrustpostal
version0.3.0
sourcesrc
created_at2020-11-22 10:18:34.828899
updated_at2022-03-12 10:38:22.568079
descriptionRust bindings to libpostal
homepage
repositoryhttps://github.com/kodemartin/rustpostal
max_upload_size
id314955
size49,033
Konstantinos Demartinos (kodemartin)

documentation

README

rustpostal

Rust bindings to libpostal, a fast statistical parser/normalizer for street addresses anywhere in the world.

Usage

use rustpostal::address;
use rustpostal::expand;
use rustpostal::LibModules;

fn main() -> Result<(), rustpostal::error::RuntimeError> {
    let postal_module = LibModules::All;
    postal_module.setup()?;

    let address = "St Johns Centre, Rope Walk, Bedford, Bedfordshire, MK42 0XE, United Kingdom";

    let labeled_tokens = address::parse_address(address, None, None)?;

    for (token, label) in &labeled_tokens {
        println!("{}: {}", token, label);
    }

    let expanded = expand::expand_address_with_options(address, Some(["en"].iter()))?;

    for expansion in &expanded {
        println!("{}", expansion);
    }
    Ok(())
}

Setup

  1. Install the C library: See installation instructions.

  2. Export the installation path to LD_LIBRARY_PATH.

Tests

$ cargo test -- --test-threads 1
Commit count: 69

cargo fmt