add english readme for rust maker
This commit is contained in:
parent
aaad26244d
commit
537e6f9306
|
|
@ -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: |
|
| [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: |
|
| [Python](maker/python) | python xdb generation program | :white_check_mark: | :x: |
|
||||||
| [Csharp](maker/csharp) | csharp 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: |
|
| [C++](maker/cpp) | C++ xdb generation program | :white_check_mark: | :white_check_mark: |
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ API 介绍,使用文档和测试程序请参考如下 `maker` 生成程序下
|
||||||
| [Java](maker/java/README_zh.md) | java xdb 生成程序 | :white_check_mark: | :white_check_mark: |
|
| [Java](maker/java/README_zh.md) | java xdb 生成程序 | :white_check_mark: | :white_check_mark: |
|
||||||
| [Python](maker/python) | python xdb 生成程序 | :white_check_mark: | :x: |
|
| [Python](maker/python) | python xdb 生成程序 | :white_check_mark: | :x: |
|
||||||
| [Csharp](maker/csharp) | csharp 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: |
|
| [C++](maker/cpp) | C++ xdb 生成程序 | :white_check_mark: | :white_check_mark: |
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,4 +51,4 @@ For custom data fields during the generation process, please refer to [xdb-文
|
||||||
|
|
||||||
# Data Search/bench Test
|
# 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.
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,18 @@
|
||||||
# ip2region xdb rust 生成实现
|
:globe_with_meridians: [中文简体](README_zh.md) | [English](README.md)
|
||||||
|
|
||||||
|
# ip2region xdb rust generation implementation
|
||||||
|
|
||||||
|
## Program Compilation
|
||||||
|
|
||||||
## 程序编译
|
|
||||||
```bash
|
```bash
|
||||||
$ cd maker/rust/maker
|
$ cd maker/rust/maker
|
||||||
$ cargo build -r
|
$ cargo build -r
|
||||||
```
|
```
|
||||||
编译成功以后,执行文件位置 `./target/release/maker`
|
|
||||||
|
|
||||||
## `xdb` 数据生成
|
After successful compilation, the executable file is located at `./target/release/maker`
|
||||||
|
|
||||||
|
## `xdb` Data Generation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# CWD ip2region/maker/rust/maker
|
# CWD ip2region/maker/rust/maker
|
||||||
$ ./target/release/maker --help
|
$ ./target/release/maker --help
|
||||||
|
|
@ -38,7 +43,8 @@ Options:
|
||||||
Print help (see a summary with '-h')
|
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
|
```bash
|
||||||
# ipv6
|
# ipv6
|
||||||
./target/release/maker --src=../../../data/ipv6_source.txt --dst=./target/ipv6.xdb --ip-version v6
|
./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
|
./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 文件
|
## Comparison with xdb files generated by other makers
|
||||||
推荐使用 `vbindiff`, 与其他文件的差异只有 create time 信息上有差异,其他数据都需要是一样的
|
|
||||||
|
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
|
```bash
|
||||||
$ cd maker golang
|
$ cd maker golang
|
||||||
$ make
|
$ 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_maker gen --src=../../data/ipv6_source.txt --dst=./ip2region_v6.xdb --version=ipv6
|
||||||
```
|
```
|
||||||
|
|
||||||
对比 xdb 差异
|
Compare xdb differences
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ cd maker/rust/maker
|
$ 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/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
|
$ ./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 ./ipv4.xdb ../../golang/ip2region_v4.xdb
|
||||||
$ vbindiff ./ipv6.xdb ../../golang/ip2region_v6.xdb
|
$ vbindiff ./ipv6.xdb ../../golang/ip2region_v6.xdb
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -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 <SRC> --dst <DST> --ip-version <IP_VERSION>
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--src <SRC>
|
||||||
|
ip source region txt filepath
|
||||||
|
|
||||||
|
--dst <DST>
|
||||||
|
generated xdb filepath
|
||||||
|
|
||||||
|
--ip-version <IP_VERSION>
|
||||||
|
Possible values:
|
||||||
|
- v4: IPv4
|
||||||
|
- v6: Ipv6
|
||||||
|
|
||||||
|
--index-policy <INDEX_POLICY>
|
||||||
|
index cache policy
|
||||||
|
|
||||||
|
[default: vector-index]
|
||||||
|
[possible values: vector-index, b-tree-index]
|
||||||
|
|
||||||
|
--filter-fields <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
|
||||||
|
```
|
||||||
Loading…
Reference in New Issue