48 releases
0.24.0 | Jan 10, 2024 |
---|---|
0.23.0 | Apr 3, 2022 |
0.22.0 | Mar 23, 2022 |
0.21.0 | Jul 20, 2021 |
0.1.0 | Nov 22, 2014 |
#25 in Database interfaces
607,610 downloads per month
Used in 34 crates
(31 directly)
60KB
1.5K
SLoC
Rust MaxMind DB Reader
This library reads the MaxMind DB format, including the GeoIP2 and GeoLite2 databases.
Building
To build everything:
cargo build
Testing
This crate manages its test data within a git submodule. To run the tests, you will first need to run the following command.
git submodule update --init
Usage
Add this to your Cargo.toml
:
[dependencies]
maxminddb = "0.17"
and this to your crate root:
extern crate maxminddb;
API Documentation
The API docs are on GitHub Pages.
Example
See examples/lookup.rs
for a basic example.
Benchmarks
The projects include benchmarks using Criterion.rs.
First you need to have a working copy of the GeoIP City database. You can fetch it from here.
Place it in the root folder as GeoIP2-City.mmdb
.
Once this is done, run
cargo bench
If gnuplot is installed, Criterion.rs can generate
an HTML report displaying the results of the benchmark under
target/criterion/report/index.html
.
Result of doing 100 random IP lookups:
Contributing
Contributions welcome! Please fork the repository and open a pull request with your changes.
License
This is free software, licensed under the ISC license.
Dependencies
~0.5–1.3MB
~28K SLoC