Crate questdb_confstr
source ·Expand description
§questdb-confstr
§Format
Parser for a configuration string format used by QuestDB clients.
The format is as follows:
service::key1=value1;key2=value2;key3=value3;
A few rules:
- The last semicolon is mandatory.
- Service name and keys are case-sensitive.
- Keys are ASCII alphanumeric and can contain underscores.
- Values are case-sensitive unicode strings which can contain any characters,
- Except control characters (
0x00..=0x1f
and0x7f..=0x9f
). - If semicolons
;
appears in a value, these are escaped as double semicolon;;
.
- Except control characters (
§Grammar
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 ?
§Usage
§Add dependency to Cargo.toml
cargo add questdb-confstr
§Usage
Use the parse_conf_str
function to parse into a ConfStr
struct.
You can then access the service name as &str
and parameters as a &HashMap<String, String>
.
§Where we use it
We use this config parsing format in our Rust, C, C++ and Python clients.
We also use it to configure object stores for database replication.
Structs§
- Parsed configuration string.
- The parsing error.
Enums§
- The type of parsing error.
Functions§
- Parse a config string.
Type Aliases§
- Parameter keys are ascii lowercase strings.
- Parameters are stored in a
Vec
of(Key, Value)
pairs. Keys are always lowercase. - Byte position in the input string where the parsing error occurred.
- Parameter values are strings.