# `Kombu.Compression`
[🔗](https://github.com/hacktobeer/kombu/blob/v0.1.0/lib/kombu/compression.ex#L1)

Message compression and decompression registry matching `kombu.compression`.

Note: Python Kombu maps `"gzip"` and `"zlib"` (`"application/x-gzip"`) to
`zlib.compress` / `zlib.decompress` (zlib framing via Erlang's `:zlib` module).

# `compress`

```elixir
@spec compress(binary() | Kombu.Utils.JSON.Bytes.t(), String.t()) ::
  {binary(), String.t()}
```

Compress `body` using `content_type` (or alias such as `"gzip"` / `"zlib"`),
returning `{compressed_binary, canonical_content_type}`.

# `decompress`

```elixir
@spec decompress(binary(), String.t()) :: binary()
```

Decompress `body` using `content_type` (or alias).

# `encoders`

```elixir
@spec encoders() :: [String.t()]
```

Return a list of registered compression MIME content-types.

# `get_decoder`

```elixir
@spec get_decoder(String.t()) :: (binary() -&gt; binary())
```

Look up `decoder_fn` for a content-type or alias.

# `get_encoder`

```elixir
@spec get_encoder(String.t()) :: {(binary() -&gt; binary()), String.t()}
```

Look up `{encoder_fn, canonical_content_type}` for a content-type or alias.

# `register`

```elixir
@spec register((binary() -&gt; binary()), (binary() -&gt; binary()), String.t(), [
  String.t()
]) :: :ok
```

Register a compression encoder and decoder for `content_type` with optional `aliases`.

# `register_defaults`

Reset and register default built-in compression codecs (`application/x-gzip`).

---

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