Documentation IndexFetch the complete documentation index at: /llms.txtUse this file to discover all available pages before exploring further.
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
ClickHouse launches Claude-powered Agents and House Mates partner program at Open House 2026 Read more →
ネイティブプロトコルの基本
0 ≤ len < MAX
s := "Hello, world!" // 文字列の長さを uvarint として書き込む。 buf := make([]byte, binary.MaxVarintLen64) n := binary.PutUvarint(buf, uint64(len(s))) buf = buf[:n] // 文字列本体を書き込む。 buf = append(buf, s...)
r := bytes.NewReader([]byte{ 0xd, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21, }) // 長さを読み取る。 n, err := binary.ReadUvarint(r) if err != nil { panic(err) } // OOM や make() での実行時例外を防ぐために n を確認する。 const maxSize = 1024 * 1024 * 10 // 10 MB if n > maxSize || n < 0 { panic("invalid n") } buf := make([]byte, n) if _, err := io.ReadFull(r, buf); err != nil { panic(err) } fmt.Println(string(buf)) // Hello, world!
00000000 0d 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 |.Hello, world!|
DUhlbGxvLCB3b3JsZCE
data := []byte{ 0xd, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21, }
v := int32(1000) // エンコード。 buf := make([]byte, 8) binary.LittleEndian.PutUint32(buf, uint32(v)) // デコード。 d := int32(binary.LittleEndian.Uint32(buf)) fmt.Println(d) // 1000
00000000 e8 03 00 00 00 00 00 00 |........|
6AMAAAAAAAA
1
true
0
false
このページは役に立ちましたか?