All skills
clickhouse avatar

/clickhouse-js-node-rowbinary

@faa5b11 official
by clickhouseclickhouse/agent-skills543 stars
39

Generate TypeScript/JavaScript code that reads/decodes AND writes/encodes ClickHouse RowBinary streams for the ClickHouse HTTP server. Use this skill whenever a user wants to parse or produce `RowBinary`, `RowBinaryWithNames`, or `RowBinaryWithNamesAndTypes`. Node.js only, doesn't cover browsers.

Use this Skill: https://skilld.dev/gh/clickhouse/agent-skills/clickhouse-js-node-rowbinary

This session only. Nothing lands on disk.

CHANGELOG.md

≈773 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Changelog — @clickhouse/rowbinary

This file tracks the standalone @clickhouse/rowbinary package (the RowBinary parser library and agent skill). Entries relevant to it (through @clickhouse/client 1.23.0) were previously recorded in the now-frozen repository-wide CHANGELOG.md.

0.2.0

New features

  • Added the RowBinary writer — the encode mirror of the reader: type-specific writeX(sink, value) building blocks and combinators that compose with no per-element closures, exported from @clickhouse/rowbinary/writer (or the per-type modules). (#911)

    writeRows(writeRow) drives an Iterable<T> of rows into a plain RowBinary payload. Note its shape: it is a streaming generator, not a one-shot Writer<readonly T[]>. It writes into a fixed-size buffer (bufferSize, default 64 KiB), yields each batch of whole rows when the buffer fills — rewinding so a half-written row never leaks — and starts a fresh buffer for the rest, so a result larger than the buffer (or an unbounded row source) streams out chunk by chunk. An oversized row grows the buffer (doubling) rather than failing, and per-buffer fill is published on the @clickhouse/rowbinary:writeRows.flush node:diagnostics_channel for buffer-utilization metrics. (#915)

    import {
      writeRows,
      writeTupleNamed,
      writeUInt64,
      writeString,
    } from "@clickhouse/rowbinary/writer";
    
    const writeRow = writeTupleNamed({ id: writeUInt64, name: writeString });
    for (const chunk of writeRows(writeRow)(rows, 64 * 1024)) send(chunk);

    Writer edge-case hardening: writeDate/writeDate32/writeDateTime floor to the calendar day / whole second instead of rounding (so a non-midnight Date or sub-second DateTime no longer rounds up); parseIPv6 rejects malformed hex groups instead of silently encoding 0; and writeGeometry validates the discriminant before writing its byte, so an out-of-range value can't leave a partial payload. (#916)

0.1.2

Improvements

  • Bumped the bundled @clickhouse/datatype-parser dependency to 0.1.2. (#895)
  • Patch release. (#903)

0.1.1

New features

  • Initial release of @clickhouse/rowbinary: a RowBinary reader library (and the companion agent skill) shipping type-specific, monomorphizable building blocks for decoding RowBinary / RowBinaryWithNames / RowBinaryWithNamesAndTypes streams (full-buffer and chunked), plus a skill that guides an agent to generate bespoke high-performance parsers from a query's column types. The same library is also bundled into @clickhouse/client (registered in agents.skills). Requires Node.js >=20. A matching RowBinary writer is planned. (#864)

Source: SKILL.md on GitHub

No alerts20d3 checks · Risk SAFE
  • Gen Agent Trust Hub20d

    This skill is a legitimate library for generating high-performance ClickHouse RowBinary decoders and encoders, authored by the official ClickHouse organization. Security analysis found the implementation to be safe, using structured parsing for data ingestion and containing no malicious patterns. It includes benchmarking experiments with WebAssembly and standard network connectivity for integration tests, both of which are consistent with its purpose as a database utility.

  • Socket20d

    No alerts

  • Snyk20d

    Risk: LOW · No issues

Signed by skilld at faa5b11. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 3 days ago.

Activeupdated 3 months ago

README badge

README badge for clickhouse/agent-skills/clickhouse-js-node-rowbinary