# `MqttX.Packet.Properties`
[🔗](https://github.com/cignosystems/mqttx/blob/v0.10.0/lib/mqttx/packet/properties.ex#L1)

MQTT 5.0 Properties encoding and decoding.

Supports all 28 MQTT 5.0 property types.

# `decode`

```elixir
@spec decode(integer(), binary()) :: {:ok, map(), binary()} | {:error, atom()}
```

Decode properties from binary.

Returns `{:ok, properties_map, rest}` or `{:error, reason}`.

# `encode`

```elixir
@spec encode(integer(), map()) :: iodata()
```

Encode properties map to binary with length prefix.

Only encodes properties for MQTT 5.0. Returns empty varint (0) for other versions.

---

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