From 537e6f93067d2d4cbeaa03a7f4b1e79fed08049b Mon Sep 17 00:00:00 2001 From: lionsoul2014 Date: Wed, 25 Feb 2026 23:13:29 +0800 Subject: [PATCH] add english readme for rust maker --- README.md | 2 +- README_zh.md | 2 +- maker/java/README.md | 2 +- maker/rust/README.md | 33 ++++++++++++------- maker/rust/README_zh.md | 73 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 98 insertions(+), 14 deletions(-) create mode 100644 maker/rust/README_zh.md diff --git a/README.md b/README.md index c7210f1..2c1188f 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ For API introductions, usage documentation, and test programs, please refer to t | [Java](maker/java/README.md) | java xdb generation program | :white_check_mark: | :white_check_mark: | | [Python](maker/python) | python xdb generation program | :white_check_mark: | :x: | | [Csharp](maker/csharp) | csharp xdb generation program | :white_check_mark: | :x: | -| [Rust](maker/rust) | rust xdb generation program | :white_check_mark: | :white_check_mark: | +| [Rust](maker/rust/README.md) | rust xdb generation program | :white_check_mark: | :white_check_mark: | | [C++](maker/cpp) | C++ xdb generation program | :white_check_mark: | :white_check_mark: | diff --git a/README_zh.md b/README_zh.md index b361e35..35713ff 100644 --- a/README_zh.md +++ b/README_zh.md @@ -70,7 +70,7 @@ API 介绍,使用文档和测试程序请参考如下 `maker` 生成程序下 | [Java](maker/java/README_zh.md) | java xdb 生成程序 | :white_check_mark: | :white_check_mark: | | [Python](maker/python) | python xdb 生成程序 | :white_check_mark: | :x: | | [Csharp](maker/csharp) | csharp xdb 生成程序 | :white_check_mark: | :x: | -| [Rust](maker/rust) | rust xdb 生成程序 | :white_check_mark: | :white_check_mark: | +| [Rust](maker/rust/README_zh.md) | rust xdb 生成程序 | :white_check_mark: | :white_check_mark: | | [C++](maker/cpp) | C++ xdb 生成程序 | :white_check_mark: | :white_check_mark: | diff --git a/maker/java/README.md b/maker/java/README.md index 5e3b5e0..d2f30bb 100644 --- a/maker/java/README.md +++ b/maker/java/README.md @@ -51,4 +51,4 @@ For custom data fields during the generation process, please refer to [xdb-文 # Data Search/bench Test -All [bindings](../../binding/) provided search and bench test programs as well as usage documentation. You can use the searcher of your familiar language for query testing or bench testing to confirm the correctness and integrity of the data. +All [bindings](../../binding/) come with search and bench test programs as well as usage documentation. You can use the searcher of your familiar language for query testing or bench testing to confirm the correctness and integrity of the data. diff --git a/maker/rust/README.md b/maker/rust/README.md index 9c33d8c..8c914c3 100644 --- a/maker/rust/README.md +++ b/maker/rust/README.md @@ -1,13 +1,18 @@ -# ip2region xdb rust 生成实现 +:globe_with_meridians: [中文简体](README_zh.md) | [English](README.md) + +# ip2region xdb rust generation implementation + +## Program Compilation -## 程序编译 ```bash $ cd maker/rust/maker $ cargo build -r ``` -编译成功以后,执行文件位置 `./target/release/maker` -## `xdb` 数据生成 +After successful compilation, the executable file is located at `./target/release/maker` + +## `xdb` Data Generation + ```bash # CWD ip2region/maker/rust/maker $ ./target/release/maker --help @@ -38,7 +43,8 @@ Options: Print help (see a summary with '-h') ``` -例如,使用默认的仓库 data/ 下默认的原始数据生成生成 xdb 文件到当前目录(`ip2region/maker/rust/maker`): +For example, use the default raw data under the repository's data/ directory to generate the xdb file to the current directory (`ip2region/maker/rust/maker`): + ```bash # ipv6 ./target/release/maker --src=../../../data/ipv6_source.txt --dst=./target/ipv6.xdb --ip-version v6 @@ -46,14 +52,16 @@ Options: ./target/release/maker --src=../../../data/ipv4_source.txt --dst=./target/ipv4.xdb --ip-version v4 ``` -## `xdb` 数据查询 和 bench 测试 +## `xdb` Data Search and bench Test -基于xdb 格式的查询功能和测试见 [ip2region binding](../../binding) +For search functions and testing based on the xdb format, see [ip2region bindings](../../binding) -## 对比其他 maker 生成的 xdb 文件 -推荐使用 `vbindiff`, 与其他文件的差异只有 create time 信息上有差异,其他数据都需要是一样的 +## Comparison with xdb files generated by other makers + +It is recommended to use `vbindiff`. The only difference from other files should be the create time information; all other data must be identical. + +Build xdb using the golang version maker -golang 版本 maker 构建 xdb ```bash $ cd maker golang $ make @@ -61,11 +69,14 @@ $ ./xdb_maker gen --src=../../data/ipv4_source.txt --dst=./ip2region_v4.xdb --ve $ ./xdb_maker gen --src=../../data/ipv6_source.txt --dst=./ip2region_v6.xdb --version=ipv6 ``` -对比 xdb 差异 +Compare xdb differences + ```bash $ cd maker/rust/maker +# Generate xdb files using rust maker $ ./target/release/maker --src=../../../data/ipv4_source.txt --dst=./target/ipv4.xdb --ip-version v4 $ ./target/release/maker --src=../../../data/ipv6_source.txt --dst=./target/ipv6.xdb --ip-version v6 +# Compare with golang generated files $ vbindiff ./ipv4.xdb ../../golang/ip2region_v4.xdb $ vbindiff ./ipv6.xdb ../../golang/ip2region_v6.xdb ``` diff --git a/maker/rust/README_zh.md b/maker/rust/README_zh.md new file mode 100644 index 0000000..d8939a8 --- /dev/null +++ b/maker/rust/README_zh.md @@ -0,0 +1,73 @@ +:globe_with_meridians: [中文简体](README_zh.md) | [English](README.md) + +# ip2region xdb rust 生成实现 + +## 程序编译 +```bash +$ cd maker/rust/maker +$ cargo build -r +``` +编译成功以后,执行文件位置 `./target/release/maker` + +## `xdb` 数据生成 +```bash +# CWD ip2region/maker/rust/maker +$ ./target/release/maker --help +Usage: maker [OPTIONS] --src --dst --ip-version + +Options: + --src + ip source region txt filepath + + --dst + generated xdb filepath + + --ip-version + Possible values: + - v4: IPv4 + - v6: Ipv6 + + --index-policy + index cache policy + + [default: vector-index] + [possible values: vector-index, b-tree-index] + + --filter-fields + region filter fields, the index of the fields, e.g. `1,2,3,5` + + -h, --help + Print help (see a summary with '-h') +``` + +例如,使用默认的仓库 data/ 下默认的原始数据生成生成 xdb 文件到当前目录(`ip2region/maker/rust/maker`): +```bash +# ipv6 +./target/release/maker --src=../../../data/ipv6_source.txt --dst=./target/ipv6.xdb --ip-version v6 +# ipv4 +./target/release/maker --src=../../../data/ipv4_source.txt --dst=./target/ipv4.xdb --ip-version v4 +``` + +## `xdb` 数据查询 和 bench 测试 + +基于xdb 格式的查询功能和测试见 [ip2region binding](../../binding) + +## 对比其他 maker 生成的 xdb 文件 +推荐使用 `vbindiff`, 与其他文件的差异只有 create time 信息上有差异,其他数据都需要是一样的 + +golang 版本 maker 构建 xdb +```bash +$ cd maker golang +$ make +$ ./xdb_maker gen --src=../../data/ipv4_source.txt --dst=./ip2region_v4.xdb --version=ipv4 +$ ./xdb_maker gen --src=../../data/ipv6_source.txt --dst=./ip2region_v6.xdb --version=ipv6 +``` + +对比 xdb 差异 +```bash +$ cd maker/rust/maker +$ ./target/release/maker --src=../../../data/ipv4_source.txt --dst=./target/ipv4.xdb --ip-version v4 +$ ./target/release/maker --src=../../../data/ipv6_source.txt --dst=./target/ipv6.xdb --ip-version v6 +$ vbindiff ./ipv4.xdb ../../golang/ip2region_v4.xdb +$ vbindiff ./ipv6.xdb ../../golang/ip2region_v6.xdb +```