//! Utilities for encoding and decoding Titan API messages to and from their binary
//! representations.
//!
//! The current v1 API encodes messages using [MessagePack], with optional compression on the
//! binary encoding.
//!
//! # Features
//!
//! The following features control various compression methods:
//!
//! * `brotli` - (default) Enables [brotli] transforms for encoding and decoding.
//! * `gzip` - (default) Enables [gzip] transforms for encoding and decoding.
//! * `zstd` - (default) Enables [zstd] transforms for encoding and decoding.
//!
//! The following features control various encoding methods:
//!
//! * `messagepack` - (default) Enables [MessagePack] encoding and decoding.
//!
//! Additional features:
//!
//! * `enum-other` - (default) Enables `enum-other` feature on `titan-api-types` crate,
//! allowing for handling of message types not defined in this version of the codec,
//! e.g. for error handling.
//!
//! [MessagePack]: https://msgpack.org/index.html
//! [brotli]: https://github.com/google/brotli
//! [gzip]: https://www.gzip.org/
//! [zstd]: https://github.com/facebook/zstd