An open API service indexing awesome lists of open source software.

https://github.com/clickhouse/ch2rs

Generate Rust structs from ClickHouse rows
https://github.com/clickhouse/ch2rs

Last synced: 12 months ago
JSON representation

Generate Rust structs from ClickHouse rows

Awesome Lists containing this project

README

          

# ch2rs

An auxiliary utility for generating Rust structures from ClickHouse DB schemas for the official [clickhouse-rs](https://github.com/ClickHouse/clickhouse-rs) crate.

## Usage

```sh
cargo install ch2rs
```

The crate enables `rustls-tls` [client](https://github.com/ClickHouse/clickhouse-rs/blob/main/Cargo.toml) 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:

```sh
cargo install ch2rs --features native-tls
```

### Help

```sh
$ ch2rs --help
```

```
ch2rs 0.1.7

USAGE:
ch2rs [FLAGS] [OPTIONS]

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 ... Add `#[serde(with = "serde_bytes")]` to the provided column
-d A database where the table is placed in [default: default]
-I ... Ignore a specified column
-O ... Override the type of the provided column
-p
--derive ... Add `#[derive()]` to the generated types
-T ... Override the type, e.g. 'Decimal(18, 9)=fixnum::FixedPoint'
-U ClickHouse server's URL [default: localhost:8123]
-u

ARGS:
The table's name
```

## Examples

See [snapshots](tests/snapshots).