# <Language> Proto Socket

Status: planned

This package implements Proto Socket protocol version `0.1` for <Language>.

## Required Structure

Use this package README to document the concrete files for:

- Transport abstraction: TCP, TLS+TCP, WS, and WSS implementations.
- Communicator core: parser map, listener routing, request-response correlation, and serialized writes.
- Client/server layer: connection lifecycle, close behavior, and heartbeat ownership.
- Generated protobuf bindings from `proto/message_common.proto`.
- Unit tests and cross-language tests.

## Runtime Dependencies

Protocol Buffers is the core protocol dependency. For everything else, prefer native platform APIs and the standard library for transport, binary handling, timers, and concurrency. A non-protobuf runtime dependency must be focused and proportional to the feature it implements. Do not introduce a broad framework or runtime layer solely to cover a narrow feature such as WebSocket transport. If a non-protobuf dependency is required, document why the native alternative is insufficient and keep the dependency surface minimal.

## Proto Generation

Document the package-local proto generation command here. The generated schema must match `proto/message_common.proto` except for language-specific generator options.

```bash
# <command to generate protobuf bindings>
```

After generation, run from the repository root:

```bash
tools/check_proto_sync.sh
```

## Validation

Before marking this implementation available, document and run:

```bash
# <formatter or linter>
# <unit tests>
# <crosstest command>
```

The implementation must pass same-language tests and cross-language tests against at least one available implementation.
