konsumer_offsets 0.3.2

A library crate to parse the content of the Kafka `__consumer_offsets` internal topic
Documentation
# konsumer_offsets [![CI_s]][CI_l] [![Doc_s]][Doc_l] [![Ver_s]][Ver_l] [![Down_s]][Down_l] ![Lic_s]

[CI_s]: https://img.shields.io/github/actions/workflow/status/kafkesc/konsumer_offsets/ci.yml?branch=main&label=CI&logo=Github&style=flat-square
[CI_l]: https://github.com/kafkesc/konsumer_offsets/actions/workflows/ci.yml
[Down_s]: https://img.shields.io/crates/d/konsumer_offsets?logo=rust&style=flat-square&label=DOWN
[Down_l]: https://crates.io/crates/konsumer_offsets
[Ver_s]: https://img.shields.io/crates/v/konsumer_offsets?logo=rust&style=flat-square&label=VER
[Ver_l]: https://crates.io/crates/konsumer_offsets/versions
[Doc_s]: https://img.shields.io/docsrs/konsumer_offsets?logo=rust&style=flat-square&label=DOC
[Doc_l]: https://docs.rs/konsumer_offsets/latest/konsumer_offsets/
[Lic_s]: https://img.shields.io/crates/l/konsumer_offsets?style=flat-square&label=L

**A library crate to parse the content of the [Kafka] [`__consumer_offsets`] internal topic.**

---

## Features

* **Most complete parser for [`__consumer_offsets`] messages out there**
* Reverse-engineering of Kafka 3.x parsing logic, making it retro-compatible by default
* Able to parse the _subscription_ and _assignment_ data contained in `GroupMetadata` messages:
  beyond what even the Kafka own parser can do
* Every struct and field is well documented
* Internal parsing functions are also documented and have references to the code they are based upon:
  if you read the code, you can go correlate to the [Kafka] codebase that its imitating
* Parsing is based on [bytes_parser] and errors on [thiserror], so it's easy to read
  and handles result errors idiomatically
* All types exported by this crate are "Thread Safe" and "Async/Await Safe":
  we enforce the implementation of `Sized + Send + Sync + Unpin`
* Support (via feature flags) to parse Unix timestamps via the [chrono] or [time] crates
* Support (via feature flags) for serialization/deserialization via the [serde] crate

## License

Licensed under either of

* Apache License, Version 2.0
  ([LICENSE-APACHE]LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license
  ([LICENSE-MIT]LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

## Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.

[Kafka]: https://kafka.apache.org/
[`__consumer_offsets`]: https://kafka.apache.org/documentation/#impl_offsettracking
[bytes_parser]: https://crates.io/crates/bytes_parser
[thiserror]: https://crates.io/crates/thiserror
[chrono]: https://crates.io/crates/chrono
[time]: https://crates.io/crates/time
[serde]: https://crates.io/crates/serde