用途:为 Node.js 生成 ClickHouse RowBinary 线格式的双向编解码代码——读取器(字节→值)与写入器(值→字节)。通常一个任务只需其中一侧,入口文件给出格式判断与通用原则,具体决策和逐类型参考表分列在 reader.md 与 writer.md 两个同级文件中。
主要能力:按方向提供逐类型参考,代码按方向拆分在 src/readers/ 与 src/writers/ 下;覆盖流式与整缓冲、行对象与列式、固定与运行时 schema(读取侧),以及 Sink/writeX 构建块与 writeRows 流式写入(写入侧)。
格式选择:RowBinary 为吞吐量而存在,但并非总是最快路径。结果以字符串/类 JSON 值为主、整体消费时优先 JSON* 格式(如 JSONEachRow),配合 HTTP 压缩;宽数值(Int128/Int256/UInt128/UInt256、Decimal128/Decimal256)、二进制/定宽块(IPv4、IPv6、UUID、FixedString)及高体量定宽数值列时 RowBinary 明显占优;以列式加载和客户端分析为主时优先 Native 格式。选择 JSON*/CSV/TSV 可参考 clickhouse-js-node-coding 技能。
核心原则:仅小端序,多字节数字用 DataView 访问器并传入字面量 true;先正确后优化;对泛型/复合类型做单态化;内联叶子操作而非调用;每列标注 ClickHouse 类型;共享 scratch 不可重入,填充与读取之间不得有异步/yield 边界;默认生成 TypeScript。
限制与范围:不涉及 JSON/CSV/TSV/Parquet 解析(用 clickhouse-js-node-coding);连接错误、挂起、类型不匹配用 clickhouse-js-node-troubleshooting;浏览器/Web Worker/Edge 用 @clickhouse/client-web。资料未提供具体安装命令、收费与价格信息。