kafka-interchange: Serialization for kafka wire protocol

[ bsd3, data, library ] [ Propose Tags ]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.2.0.0
Dependencies base (>=4.11 && <5), bytebuild (>=0.3.14), byteslice (>=0.1.1.0 && <0.3.0.0), bytesmith (>=0.3 && <0.4), bytestring (>=0.11), castagnoli (>=0.2.0.1), chronos (>=1.1.5), containers (>=0.5), contiguous (>=0.6), ip (>=1.5.0 && <1.8), mtl (>=2.2.2), natural-arithmetic (>=0.1.3), primitive (>=0.9.0.0 && <0.10), primitive-unaligned (>=0.1.1.0 && <0.2.0.0), stm (>=2.5.0.0), text (>=2.0), text-short (>=0.1.5), torsor (>=0.1 && <0.2), transformers (>=0.5 && <0.7), wide-word (>=0.1.5), zigzag (>=0.0.1) [details]
License BSD-3-Clause
Copyright 2023 Layer 3 Communications
Author Andrew Martin
Maintainer amartin@layer3com.com
Category Data
Uploaded by andrewthad at 2024-03-21T16:08:43Z
Distributions NixOS:0.2.0.0
Downloads 17 total (4 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-03-21 [all 1 reports]

Readme for kafka-interchange-0.2.0.0

[back to package description]

kafka-interchange

This library provides serialization and deserialization for exchanges with Kafka. This takes the form of: data types, encode functions, and decode functions. This library is not a Kafka client. A Kafka client must be a much more opinionated piece of software. The purpose of this library is for Kafka clients to be built on top of it.

Module Structure

There are two module namespaces in this library: Kafka.Interchange and Kafka.Data. Pseudoregex for modules in the Kafka.Interchange namespace:

Kafka.Interchange.{msgtype}.(Request|Response).V[0-9]+

For example:

Kafka.Interchange.Message.Request.V2
Kafka.Interchange.Message.Response.V1
Kafka.Interchange.Produce.Request.V9

The message type "Message" is special. It's the wrapper that all other message types are serialized inside of. Request modules include a encode function. Response modules include a decode function.

Some shared types are used by both requests and responses. For such types, we use the Kafka.Data namespace. For example:

Kafka.Data.Acknowledgments

These are not versioned, and they include both encode and decode functions.