ClickHouse / ClickHouse/clickhouse-rs

Support Native format over HTTP

Open
#425 1 comment 0 reactions 0 assignees View on GitHub
enhancement feature-completeness
Dominant language
Rust
Stars
559
Forks
172
Avg merge
1d 19h
Merged PRs (30d)
3

Description

This is the foundational building block for https://github.com/ClickHouse/clickhouse-rs/issues/336. Adding `Native` as a high-efficiency columnar format over HTTP delivers significant value that is largely orthogonal to [TCP protocol support](https://github.com/ClickHouse/clickhouse-rs/issues/226). The users get columnar performance over the transport they already use.

Scope
- [ ] Read and write dynamic record batches over HTTP using ClickHouse's Native wire format.
- [ ] API shape inspired by the Arrow API model (column-oriented batches), but built directly on Native
- [ ] Evaluate and, where suitable, integrate code from https://github.com/ClickHouse/clickhouse-rs/pull/407
- [ ] Adapt [existing benchmarks](https://github.com/ClickHouse/clickhouse-rs/tree/main/benches) to cover the new Native APIs alongside the current serde path

Contributor guide

Open the contributing guide

Research direction

Start by reading the related issue 336, the TCP protocol issue 226, and pull request 407 to understand the intended Native integration. Inspect the existing benchmarks in benches and the current serde path before defining the column-oriented HTTP API. Done means dynamic record batches can be read and written over HTTP in Native format, with suitable benchmarks covering the new APIs.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, backend, database
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.