HeadlinesBriefing HeadlinesBriefing.com

GitHub ClickHouse/clickhouse-c: Header-Only C Client

Hacker News •
×

ClickHouse/clickhouse-c adalah klien C minimalist yang menerapkan Native wire format over TCP. Perpustakaan terdiri dari satu header utama plus header opsional berikutnya untuk TCP, compression, codecs, dan I/O backends. Dirancang untuk dimasukkan ke dalam ekstensi PostgreSQL tetapi tidak berisi kode PostgreSQL-specific. Menginclude clickhouse.h saja menyediakan pure block decoder untuk caller-supplied chc_io, dapat digunakan untuk membaca output FORMAT Native clickhouse-local dari pipa tanpa TCP, compression, atau dependensi link-time di luar libc.

Quickstart menampilkan dekoding query clickhouse local tanpa TCP atau kompresi. Versi end-to-end yang dapat dijalankan tersedia di examples/minimal_decode.c. Pengaturan server yang diperlukan adalah output_format_native_encode_types_in_binary_format = 0; tanpa itu, server mengeluarkan binary type tags dan chc_block_read mengembalikan CHC_ERR_TYPE.

Integrasi mengikuti model satu-unit translasi: satu unit translasi per konsumen mendefinisikan macro CHC_IMPLEMENTATION dan mencakup header, sementara TU lain hanya mencakup deklarasi publik. Helper malloc/realloc/free stdlib di balik CHC_PROVIDE_STDLIB_ALLOC. Untuk wiring palloc/repalloc/pfree di dalam ekstensi PostgreSQL, lihat pg_clickhouse atau pg_stat_ch.

Header mencakup clickhouse.h (inti), clickhouse-client.h (TCP packet loop), clickhouse-async.h (ioless client), clickhouse-compression.h (frame terkompresi, adapter LZ4 & ZSTD), clickhouse-posix-io.h (baca/ulis blok), dan clickhouse-openssl.h (SSL support). Setiap header berikutnya mandiri. Pengujian menggunakan test.sh dengan CFLAGS dan LDFLAGS untuk konfigurasi.

Sumber: Hacker News · Diringkas oleh HeadlinesBriefing