# `QuackDB.Protocol`
[🔗](https://github.com/elixir-vibe/quackdb/blob/main/lib/quack_db/protocol.ex#L1)

Quack protocol constants and codec entry point.

The actual encoder/decoder will live below this namespace. This module keeps
protocol-level names in one place so message codecs, transport, and tests do
not duplicate numeric ids.

# `field_end`

```elixir
@spec field_end() :: 65535
```

# `message_type`

```elixir
@spec message_type(atom()) :: non_neg_integer()
```

# `message_types`

```elixir
@spec message_types() :: %{required(atom()) =&gt; non_neg_integer()}
```

# `optional_index_invalid`

```elixir
@spec optional_index_invalid() :: 18_446_744_073_709_551_615
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
