Advanced

Extending authentication (e.g. external SASL mechanism)

Connection constructor takes an AuthenticationConfig, which contains a list of SaslMechanisms by order of preference, default connection only contains a plain mechanism that uses username and password, you can however implement any other mechanisms or integrate with other external mechanisms.

Connection config

You can tune each connection using ConnectionConfig

import cats.effect.IO
import lepus.client.*
import lepus.protocol.domains.*

val config = ConnectionConfig.default
  .withName(ShortString("local-dev")) // set a connection name
  .withBufferSize(1000) // connection buffer size
  .withChannelConfig(  // global config for channels
    ChannelConfig.default.withDeliveryBufSize(1000) //channel delivery buffer size
  )
  
val connection = LepusClient[IO](config = config)

You can find all the options in ConnectionConfig and ChannelConfig

Wire protocol

TBD