#clickhouse #database-schema #generator #structure

bin+lib ch2rs

Generate Rust structs from ClickHouse rows

9 releases

0.1.8 Sep 27, 2024
0.1.7 Aug 8, 2024
0.1.6 Jun 9, 2022
0.1.5 Jan 25, 2022
0.1.1 May 31, 2021

#653 in Database interfaces

MIT license

25KB
555 lines

ch2rs

An auxiliary utility for generating Rust structures from ClickHouse DB schemas for the official clickhouse-rs crate.

Usage

cargo install ch2rs

The crate enables rustls-tls client feature by default, which allows to work with HTTPS URLs. If rustls-tls does not work in your use case, you can install the crate with native-tls instead:

cargo install ch2rs --features native-tls

Help

$ ch2rs --help
ch2rs 0.1.7

USAGE:
    ch2rs [FLAGS] [OPTIONS] <table>

FLAGS:
    -D               Generate `Deserialize` instances
    -h, --help       Prints help information
        --owned      Generate only owned types
    -S               Generate `Serialize` instances
    -V, --version    Prints version information

OPTIONS:
    -B <bytes>...              Add `#[serde(with = "serde_bytes")]` to the provided column
    -d <database>              A database where the table is placed in [default: default]
    -I <ignore>...             Ignore a specified column
    -O <overrides>...          Override the type of the provided column
    -p <password>
        --derive <trait>...    Add `#[derive(<trait>)]` to the generated types
    -T <types>...              Override the type, e.g. 'Decimal(18, 9)=fixnum::FixedPoint<i64, typenum::U9>'
    -U <url>                   ClickHouse server's URL [default: localhost:8123]
    -u <user>

ARGS:
    <table>    The table's name

Examples

See snapshots.

Dependencies

~9–21MB
~289K SLoC