La referencia del protocolo del cliente está en desarrollo.La mayoría de los ejemplos solo están en Go.
Este documento describe el protocolo binario para los clientes TCP de ClickHouse.
Para las longitudes, los códigos de paquete y otros casos, se utiliza la codificación unsigned varint.
Utilice binary.PutUvarint y binary.ReadUvarint.
No se utiliza signed varint.
Las cadenas de longitud variable se codifican como (longitud, valor), donde longitud es varint y valor es una cadena UTF-8.
Valide la longitud para evitar OOM:0 ≤ len < MAX
ClickHouse utiliza Little Endian para los enteros de tamaño fijo.
Volcado hexadecimal
Base64
Los valores booleanos se representan con un único byte: 1 es true y 0 es false.