#ip-geolocation #geolocation #ip #maxmind #geo-ip

geoip2

Library for reading MaxMind DB format used by GeoIP2 and GeoLite2

9 releases

0.1.7 Mar 26, 2024
0.1.6 Jan 27, 2022
0.1.5 Dec 31, 2021
0.1.4 Sep 15, 2021
0.0.1 Aug 21, 2021

#298 in Database interfaces

Download history 1/week @ 2024-01-25 4/week @ 2024-02-01 13/week @ 2024-02-08 33/week @ 2024-02-15 49/week @ 2024-02-22 23/week @ 2024-02-29 27/week @ 2024-03-07 26/week @ 2024-03-14 114/week @ 2024-03-21 52/week @ 2024-03-28 36/week @ 2024-04-04 49/week @ 2024-04-11 66/week @ 2024-04-18 47/week @ 2024-04-25 54/week @ 2024-05-02 31/week @ 2024-05-09

211 downloads per month
Used in geosuggest-core

MIT license

32KB
767 lines

GeoIP2 Reader for Rust

This library reads MaxMind GeoIP2 databases

Build Status Software License Downloads

crates.io Documentation Dependency Status

Usage

[dependencies]
geoip2 = "0.1.6"

See examples/lookup.rs for a basic example.

Benchmarks

Benchmarks required nightly Rust.

Place GeoIP2-Country.mmdb and GeoIP2-City.mmdb in the testdata folder, then run:

cargo bench

Tested on paid DB on cargo 1.56.0-nightly, Intel i7-7700, Debian 9.1.

IncSW/geoip2-rs

default

city      2,175 ns/iter (+/- 124)
country   1,123 ns/iter (+/- 111)

unsafe-str

city      1,113 ns/iter (+/- 76)
country     524 ns/iter (+/- 31)

oschwald/maxminddb-rust.

default

city      4,224 ns/iter (+/- 153)
country   2,270 ns/iter (+/- 158)

unsafe-str-decode

city      3,266 ns/iter (+/- 191)
country   1,802 ns/iter (+/- 75)

License

MIT License.

Dependencies

~315–780KB
~19K SLoC