1个不稳定版本
0.1.0 | 2023年9月30日 |
---|
#706 在 HTTP服务器
63KB
367 行
Fentrail
关于
Fentrail
是一套工具(Rust库、CLI和HTTP服务器),用于研究棋局可以经过的可能路径以达到特定位置。系统的工怍流程由两个独立的组件组成。首先,使用CLI,通过处理用户提供的PGN格式的游戏数据库生成键值存储。其次,通过HTTP请求或通过命令行通过FEN输入查询生成的存储。
安装
假设您已安装Rust,则可以从https://crates.io安装 fentrail
CLI和serveft
HTTP服务器。
cargo install fentrail
cargo install serveft
用法
两个CLI子命令及其选项和参数通过提供的--help
标志进行文档说明。
$ fentrail --help
Usage: fentrail <command> [<args>]
Build and query opening lookup tables for chess positions.
Options:
--help display usage information
Commands:
pack Initiate or populate KV-stores.
ask Inquire a store about a specific position.
$ fentrail pack --help
Usage: fentrail pack <pgn> [-d <depth>] [-e <ecotsv>] [-o <outdir>]
Initiate or populate KV-stores.
Positional Arguments:
pgn path to the game database in PGN format
Options:
-d, --depth moves from each side to process in a game [default: 12]
-e, --ecotsv path to a tsv file to be used as an ECO
-o, --outdir directory to store the fentrail database [default: $PWD]
--help display usage information
$ fentrail ask --help
Usage: fentrail ask <fen> [-s <store>]
Inquire a store about a specific position.
Positional Arguments:
fen FEN string to query
Options:
-s, --store path to the fentrail database [default: $PWD/fentrail.redb]
--help display usage information
pack
命令不会覆盖现有存储,而是从新的PGN输入中添加未见过的 (position, opening)
对。如果您需要,在调用 pack
之前始终可以手动删除旧数据库。
如果您希望为 pack
提供自定义的 ECO,则它必须是一个至少有两列的TSV文件 - name
和 pgn
。您可以作为示例查看捆绑的ECO。
serveft
命令不接受任何额外的参数 - 而是通过环境变量进行配置。
SERVEFT_PORT
:服务HTTP请求的端口号 - 默认8000
SERVEFT_STORE
:查询fentrail数据库的路径 - 默认$PWD/fentrail.redb
一旦运行,您可以使用 FEN 载荷向服务器发送 POST 请求。
SERVEFT_PORT=3000 SERVEFT_STORE=/var/db/fentrail.redb serveft &
curl -sS 0.0.0.0:3000 -d 'rnbq1rk1/ppp1ppbp/3p1np1/8/2PPP3/2N2N1P/PP3PP1/R1BQKB1R b KQ - 0 6'
致谢
许可协议
Fentrail
工作区中的每个包都根据自由软件基金会发布的 GNU Affero 通用公共许可证进行许可,无论是许可证的第 3 版,还是(根据您的选择)任何后续版本。有关详细信息,请参阅 COPYING 文件。
依赖项
~10–23MB
~276K SLoC