# Titan API Codec
Contains helpers for encoding and decoding Titan API types to/from
binary.
## Primary Usage
The main entry points for users should be:
- `titan_api_types::codec::ws::v1::ServerCodec`: For server implementors.
- `titan_api_types::codec::ws::v1::ClientCodec`: For client implementors.
Users would extract the [Sec-WebSocket-Protocol](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Sec-WebSocket-Protocol)
header value after WebSocket protocol negotiation, use their chosen codec to
parse that and generate the proper encoder and decoder for sending/receiving
messages.
## Features
All features are currently default, please use `with-default-features = false`
if you wish to chose only specific features.
- `brotli`: Enables [brotli](https://github.com/google/brotli) compression support.
- `gzip`: Enables [gzip](https://www.gzip.org/) compression support.
- `zstd`: Enables [zstd](https://github.com/facebook/zstd) compression support.
- `messagepack`: Enables [MessagePack](https://msgpack.org/index.html) encoding support.
Required for any Codecs to be available.
- `enum-other`: Enables `enum-other` feature in `titan-api-types` to allow for handling
unknown message types.