proto-socket/templates/language/IMPLEMENTATION_CHECKLIST.md
toki c384516b47 feat: implement new communication patterns and add cross-test support
- Add Transport class for unified communication layer
- Implement new communicator patterns
- Add VERSIONING.md for version management
- Add crosstest files for Dart/Go integration testing
- Update protocol documentation
- Add new skills and templates for AI-assisted development
- Various bug fixes and improvements to Dart implementation
2026-04-12 07:53:31 +09:00

1.8 KiB

Implementation Checklist

Target protocol version: 0.1

Protocol Core

  • Generated protobuf bindings from the canonical schema.
  • Parser map registers application messages by protocol-compatible typeName.
  • Built-in HeartBeat registration is owned by the framework.
  • PacketBase.typeName, nonce, data, and responseNonce semantics match PROTOCOL.md.
  • Same typeName cannot be registered for both normal listener and request listener on one connection.

Transport

  • Transport abstraction exposes only packet write and close operations.
  • Communicator does not know whether the connection is TCP, TLS+TCP, WS, or WSS.
  • TCP framing writes a 4-byte big-endian length followed by one PacketBase protobuf payload.
  • TCP reader rejects zero-length packets as no-op and closes on invalid or oversized lengths.
  • WebSocket reader/writer uses one binary frame per PacketBase payload.
  • TLS+TCP and WSS are supported or explicitly marked unsupported with a reason.

Lifecycle

  • Close is idempotent.
  • Pending requests complete with an error when the connection closes.
  • Writes are serialized so packet bytes cannot interleave.
  • Read, write, heartbeat, and close errors converge on the same disconnect path.

Features

  • Fire-and-forget send.
  • Request-response send with timeout or cancellation.
  • Concurrent requests route by responseNonce.
  • Heartbeat sends after inactivity and closes after missing response.
  • Server broadcast, if the language package exposes server helpers.

Verification

  • Formatter/linter passes.
  • Same-language TCP tests pass.
  • Same-language WS tests pass.
  • TLS/WSS tests pass where supported.
  • Cross-language tests pass in both server/client directions.