#config-parser #configuration #parser #string-format #questdb #key-value

questdb-confstr

用于处理服务名称和参数的配置字符串格式解析器

1 个不稳定版本

0.1.0 2024 年 1 月 31 日

#2090解析器实现

Download history 361/week @ 2024-03-14 336/week @ 2024-03-21 250/week @ 2024-03-28 232/week @ 2024-04-04 181/week @ 2024-04-11 238/week @ 2024-04-18 252/week @ 2024-04-25 299/week @ 2024-05-02 715/week @ 2024-05-09 354/week @ 2024-05-16 682/week @ 2024-05-23 830/week @ 2024-05-30 715/week @ 2024-06-06 562/week @ 2024-06-13 727/week @ 2024-06-20 743/week @ 2024-06-27

2,857 每月下载量
2 crates 中使用

Apache-2.0

15KB
295 代码行

questdb-confstr

格式

QuestDB 客户端使用的配置字符串格式解析器。

格式如下

service::key1=value1;key2=value2;key3=value3;

一些规则

  • 最后一个分号是必需的。
  • 服务名称和键是区分大小写的。
  • 键是 ASCII 字符串,可以包含下划线。
  • 值是区分大小写的 Unicode 字符串,可以包含任何字符,
    • 除了控制字符 (0x00..=0x1f0x7f..=0x9f)。
    • 如果值中出现分号 ;,这些将作为双分号 ;; 转义。

语法

conf_str ::= service "::" params | service
service ::= identifier
params ::= param (";" param)* ";"
param ::= key "=" value
key ::= identifier
value ::= { value_char }

identifier ::= alpha_num_under { alpha_num_under }
alpha_num_under ::= "a".."z" | "A".."Z" | "0".."9" | "_"
value_char ::= non_semicolon_char | escaped_semicolon
escaped_semicolon ::= ";;"
non_semicolon_char ::= ? any unicode character except ';', 0x00..=0x1f and 0x7f..=0x9f ?

用法

将依赖项添加到 Cargo.toml

cargo add questdb-confstr

用法

使用 parse_conf_str 函数将配置解析为 ConfStr 结构体。

然后您可以通过 &str 访问服务名称,并将参数作为 &HashMap<String, String>

我们使用它的地方

我们在我们的 Rust, C, C++Python 客户端中使用此配置解析格式。

我们还用它来配置数据库复制的对象存储 核心复制设置

无运行时依赖