
Clickhouse Js Node Rowbinary
Generate TypeScript code to encode and decode ClickHouse's RowBinary wire format in Node.js. This is for throughput scenarios where you're moving wide numerics, fixed-width blobs like UUIDs, or high-volume numeric columns and JSON formats are leaving performance on the table. The skill inlines DataView operations into monomorphic codecs instead of calling generic helpers in a loop. It covers readers, writers, and all three RowBinary variants. Fair warning: if your result set is mostly strings you're randomly accessing, V8's native JSON.parse with HTTP compression will likely beat a handwritten binary parser. Know when to reach for this and when not to.
- skills.sh installs
- 6.5K
- GitHub stars
- 565
- last updated
- Aug 21, 2026
Install
$ npx -y skills add clickhouse/agent-skills --skill clickhouse-js-node-rowbinary --agent claude-codeInstalls into .claude/skills of the current project.
Files
ClickHouse JS RowBinary Codec Generator for Node.js
This skill generates both directions of the wire format: readers (decode bytes → values) and writers (encode values → bytes, the mirror). A given task normally needs only one side. This file is the shared entry point — the format gate plus the principles common to both directions; the per-direction decisions, guidance, and the per-type reference tables live in two sibling files.
Pick your side — read only the one you need:
- Decoding a
RowBinary*response from ClickHouse into JS values → reader.md. Streaming vs whole-buffer, row-objects vs columnar, fixed vs runtime schema, and the per-type reader reference. - Encoding JS values into a
RowBinarypayload to send to ClickHouse → writer.md. TheSink/writeXbuilding blocks,writeRowsstreaming, and the per-type writer reference.
The per-type code is real, split by direction under src/readers/ and
src/writers/.
First: is RowBinary even the right format?
Sponsors
Details
- Repository
- github.com/clickhouse/agent-skills
- Categories
- Backend & APIs, AI & Agent Building, Databases
- First seen
- Jul 14, 2026