Babysitter serialization

Expert skill for binary and text serialization formats, schema design, and optimization

install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/network-programming/skills/serialization" ~/.claude/skills/a5c-ai-babysitter-serialization && rm -rf "$T"
manifest: library/specializations/network-programming/skills/serialization/SKILL.md
source content

Serialization Skill

Expert skill for binary and text serialization formats, schema design, and performance optimization.

Capabilities

  • Protocol Buffers: Generate Protocol Buffer schemas and code for multiple languages
  • FlatBuffers: Design FlatBuffers schemas for zero-copy deserialization
  • MessagePack/CBOR: Implement MessagePack and CBOR binary encoding
  • Performance Analysis: Analyze and compare serialization performance
  • Format Comparison: Compare serialization formats for specific use cases
  • Deserialization Debugging: Debug deserialization issues and version mismatches
  • Payload Optimization: Optimize payload sizes and encoding efficiency
  • Schema Evolution: Handle backward/forward compatible schema changes

Tools and Dependencies

  • protoc
    - Protocol Buffer compiler
  • flatc
    - FlatBuffers compiler
  • msgpack-tools
    - MessagePack utilities
  • cbor-tools
    - CBOR utilities
  • capnp
    - Cap'n Proto compiler
  • avro-tools
    - Apache Avro utilities

Target Processes

  • binary-protocol-parser.js
  • custom-protocol-design.js
  • message-framing.js
  • websocket-server.js

Usage Examples

Protocol Buffers Schema

syntax = "proto3";
package network;

message Packet {
  uint32 sequence = 1;
  bytes payload = 2;
  int64 timestamp = 3;
  map<string, string> headers = 4;
}

FlatBuffers Schema

namespace Network;

table Packet {
  sequence: uint32;
  payload: [ubyte];
  timestamp: int64;
  headers: [KeyValue];
}

table KeyValue {
  key: string;
  value: string;
}

root_type Packet;

Code Generation

protoc --python_out=. --go_out=. packet.proto
flatc --python --go packet.fbs

Performance Benchmarking

hyperfine 'protoc-bench encode message.proto' 'msgpack-bench encode message.json'

Quality Gates

  • Schema validation passes
  • Backward compatibility verified
  • Performance benchmarks met
  • Cross-language interoperability tested
  • Payload size within requirements