Crate czdb

Crate czdb 

Source
Expand description

§CZDB Database Library

A Rust library for parsing and searching CZ-format IP geolocation databases.

§Features

  • Supports both IPv4 and IPv6 address searches.
  • Disk-based search (CzdbDisk) for low memory usage.
  • Optional memory-mapped file support (mmap feature) via CzdbMmap.
  • In-memory accelerated search via CzdbMemory (available by default).

§Usage

  1. Create a database instance by loading the database file and providing a decryption key:
use czdb::CzdbDisk;

let db_path = "path/to/your/czdb_file";
let key = "your_base64_key";
let mut czdb = CzdbDisk::open(db_path, key).expect("Failed to load database");
  1. Search for IP address geolocation data:
use std::net::IpAddr;

let ip: IpAddr = "8.8.8.8".parse().unwrap();
if let Some(location) = czdb.search(ip) {
    println!("Location for IP {}: {}", ip, location);
} else {
    println!("No location data found for IP {}", ip);
}

§纯真CZDB解析库

这是一个用于解析和查询 CZDB 格式 IP 地理位置数据库的 Rust 库。

§功能

  • 支持 IPv4 和 IPv6 地址查询。
  • 提供磁盘搜索(CzdbDisk)、可选 mmap(CzdbMmap)和可选内存加速(CzdbMemory)。

§使用方法

  1. 创建实例并加载数据库:
use czdb::CzdbDisk;

let db_path = "path/to/your/czdb_file";
let key = "your_base64_key";
let mut czdb = CzdbDisk::open(db_path, key).expect("Failed to load database");
  1. 查询 IP 数据:
use std::net::IpAddr;
let ip: IpAddr = "8.8.8.8".parse().unwrap();
if let Some(location) = czdb.search(ip) {
    println!("Location for IP {}: {}", ip, location);
} else {
    println!("No location data found for IP {}", ip);
}

Structs§

CzdbDisk
Disk-backed CZDB searcher.
CzdbMemory
In-memory CZDB searcher with a prebuilt index and string pool.
CzdbMmapmmap
Mmap-backed CZDB searcher.

Enums§

CzError
Possible errors returned by CZDB operations.
DbType
Database IP version type.