Codecs

zio.raft.protocol.Codecs
object Codecs

scodec binary serialization codecs for ZIO Raft protocol messages.

This module provides binary serialization support for all protocol messages using scodec, including:

  • Protocol signature and version handling
  • Discriminated union encoding for message hierarchies
  • Type-safe serialization for newtypes
  • Backward/forward compatibility support

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Codecs.type

Members list

Value members

Concrete methods

def decodeClientMessage(bytes: ByteVector): Attempt[ClientMessage]

Decode bytes to a ClientMessage.

Decode bytes to a ClientMessage.

Attributes

def decodeServerMessage(bytes: ByteVector): Attempt[ServerMessage]

Decode bytes to a ServerMessage.

Decode bytes to a ServerMessage.

Attributes

def encodeClientMessage(message: ClientMessage): Attempt[ByteVector]

Encode a ClientMessage to bytes.

Encode a ClientMessage to bytes.

Attributes

def encodeServerMessage(message: ServerMessage): Attempt[ByteVector]

Encode a ServerMessage to bytes.

Encode a ServerMessage to bytes.

Attributes

Concrete fields

val constantProtocolVersionCodec: Codec[Unit]

Codec for constant protocol version.

Codec for constant protocol version.

Attributes

val protocolHeaderCodec: Codec[Unit]

Protocol header codec (signature + version).

Protocol header codec (signature + version).

Attributes

val protocolSignatureCodec: Codec[Unit]

Codec for protocol signature validation.

Codec for protocol signature validation.

Attributes

val protocolVersionCodec: Codec[Byte]

Codec for protocol version.

Codec for protocol version.

Attributes

Implicits

Implicits

implicit val capabilitiesCodec: Codec[Map[String, String]]

Codec for string-to-string maps (capabilities).

Codec for string-to-string maps (capabilities).

Attributes

implicit val clientMessageCodec: Codec[ClientMessage]

Discriminated codec for all ClientMessage types.

Discriminated codec for all ClientMessage types.

Attributes

implicit val clientRequestCodec: Codec[ClientRequest]

Codec for ClientRequest message.

Codec for ClientRequest message.

Attributes

implicit val clientResponseCodec: Codec[ClientResponse]

Codec for ClientResponse message.

Codec for ClientResponse message.

Attributes

implicit val closeReasonCodec: Codec[CloseReason]

Codec for CloseReason.

Codec for CloseReason.

Attributes

implicit val closeSessionCodec: Codec[CloseSession]

Codec for CloseSession message.

Codec for CloseSession message.

Attributes

Codec for ConnectionClosed client message. Simple constant codec since it's a case object with no parameters. Note: Uses fully qualified name to avoid conflict with SessionCloseReason.ConnectionClosed

Codec for ConnectionClosed client message. Simple constant codec since it's a case object with no parameters. Note: Uses fully qualified name to avoid conflict with SessionCloseReason.ConnectionClosed

Attributes

implicit val continueSessionCodec: Codec[ContinueSession]

Codec for ContinueSession message.

Codec for ContinueSession message.

Attributes

implicit val correlationIdCodec: Codec[CorrelationId]

Codec for correlationId (opaque string).

Codec for correlationId (opaque string).

Attributes

implicit val createSessionCodec: Codec[CreateSession]

Codec for CreateSession message.

Codec for CreateSession message.

Attributes

implicit val instantCodec: Codec[Instant]

Codec for Instant timestamps.

Codec for Instant timestamps.

Attributes

implicit val keepAliveCodec: Codec[KeepAlive]

Codec for KeepAlive message.

Codec for KeepAlive message.

Attributes

Codec for KeepAliveResponse message.

Codec for KeepAliveResponse message.

Attributes

implicit val memberIdCodec: Codec[MemberId]

Codec for MemberId from protocol.

Codec for MemberId from protocol.

Attributes

implicit val nonceCodec: Codec[Nonce]

Codec for Nonce.

Codec for Nonce.

Attributes

implicit val payloadCodec: Codec[ByteVector]

Codec for ByteVector payloads.

Codec for ByteVector payloads.

Attributes

implicit def queryCodec: Codec[Query]

Codec for Query message.

Codec for Query message.

Attributes

implicit def queryResponseCodec: Codec[QueryResponse]

Codec for QueryResponse message.

Codec for QueryResponse message.

Attributes

implicit val rejectionReasonCodec: Codec[RejectionReason]

Codec for RejectionReason.

Codec for RejectionReason.

Attributes

implicit val requestErrorCodec: Codec[RequestError]

Codec for RequestError message.

Codec for RequestError message.

Attributes

Codec for RequestErrorReason.

Codec for RequestErrorReason.

Attributes

implicit val requestIdCodec: Codec[RequestId]

Codec for RequestId (Long counter).

Codec for RequestId (Long counter).

Attributes

implicit val serverMessageCodec: Codec[ServerMessage]

Discriminated codec for all ServerMessage types.

Discriminated codec for all ServerMessage types.

Attributes

Codec for ServerRequestAck message.

Codec for ServerRequestAck message.

Attributes

implicit val serverRequestCodec: Codec[ServerRequest]

Codec for ServerRequest message.

Codec for ServerRequest message.

Attributes

Codec for SessionCloseReason.

Codec for SessionCloseReason.

Attributes

implicit val sessionClosedCodec: Codec[SessionClosed]

Codec for SessionClosed message.

Codec for SessionClosed message.

Attributes

Codec for SessionContinued message.

Codec for SessionContinued message.

Attributes

implicit val sessionCreatedCodec: Codec[SessionCreated]

Codec for SessionCreated message.

Codec for SessionCreated message.

Attributes

implicit val sessionIdCodec: Codec[SessionId]

Codec for SessionId (UUID string).

Codec for SessionId (UUID string).

Attributes

implicit val sessionRejectedCodec: Codec[SessionRejected]

Codec for SessionRejected message.

Codec for SessionRejected message.

Attributes