#wrapper #libpostal #thread-safe #initialization #high-level #address #normalization

libpostal-rust

libpostal地址归一化的高级封装(带锁以支持线程安全的初始化)

2个版本

0.1.1 2022年2月17日
0.1.0 2022年2月17日

#234 in Geospatial

Download history · Rust 包仓库 1652/week @ 2024-03-31 · Rust 包仓库 1733/week @ 2024-04-07 · Rust 包仓库 1545/week @ 2024-04-14 · Rust 包仓库 2368/week @ 2024-04-21 · Rust 包仓库 3381/week @ 2024-04-28 · Rust 包仓库 3045/week @ 2024-05-05 · Rust 包仓库 2248/week @ 2024-05-12 · Rust 包仓库 2423/week @ 2024-05-19 · Rust 包仓库 1977/week @ 2024-05-26 · Rust 包仓库 1419/week @ 2024-06-02 · Rust 包仓库 1157/week @ 2024-06-09 · Rust 包仓库 1291/week @ 2024-06-16 · Rust 包仓库 792/week @ 2024-06-23 · Rust 包仓库 457/week @ 2024-06-30 · Rust 包仓库 819/week @ 2024-07-07 · Rust 包仓库 623/week @ 2024-07-14 · Rust 包仓库

2,722 下载量/月
用于 geocode-csv

Apache-2.0 OR MIT

40MB
609K SLoC

C 572K SLoC // 0.0% comments · Rust 包仓库 Python 15K SLoC // 0.1% comments · Rust 包仓库 Shell 8K SLoC // 0.2% comments · Rust 包仓库 M4 7.5K SLoC // 0.2% comments · Rust 包仓库 Rust 5.5K SLoC // 0.0% comments · Rust 包仓库 SQL 1K SLoC // 0.2% comments · Rust 包仓库 OCaml 202 SLoC · Rust 包仓库 Automake 84 SLoC // 0.1% comments · Rust 包仓库

libpostal-rust: 另一个 libpostal 封装器

这是对libpostal库的另一套高级绑定。还有其他几个针对此库的Rust封装器。这个封装器包括以下特性,这些特性可能在其他地方不可用

  • 不需要安装libpostal
  • 支持构建静态Rust二进制文件。
  • 支持线程安全地初始化libpostal
  • 支持从x86_64 Mac交叉编译到aarch64(Apple Silicon),用于GitHub CI构建器和类似设置。

API文档


lib.rs:

libpostal-rust: 一个围绕 libpostal 的高级、线程安全的封装器

开源C库libpostal提供了使用外部语言模型解析和归一化全球地址的支持。我们提供了一个围绕该库的高级Rust封装器,以便将其链接到主Rust二进制文件中。

请注意,您需要使用libpostal_data(包含在libpostal中)来下载和安装约2GB的语言模型数据

sudo libpostal_data download all /usr/local/share/libpostal

完成后,您可以按以下方式解析地址

use libpostal_rust::{ParseAddressOptions, parse_address};

let addr = "781 Franklin Ave Crown Heights Brooklyn NYC NY 11216 USA";
let opt = ParseAddressOptions::default();
let parsed = parse_address(addr, &opt).unwrap();
assert_eq!(parsed.get("state"), Some(&"ny".to_owned()));

您可以使用address-formatter对OpenCage地址模板的支持,将parsed转换回格式良好的地址(几乎在世界上任何地方)。

依赖项