lepus.std

package lepus.std

Members list

Concise view

Type members

Classlikes

trait ChannelCodec[T]

ChannelCodec is the interface for encoding/decoding operations for messages that can fail on both ways.

ChannelCodec is the interface for encoding/decoding operations for messages that can fail on both ways.

Note that this is not a typeclass and it is not used in implicit scope and there are no instances of it.

Attributes

Companion:
object
Source:
ChannelCodec.scala
Graph
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion:
trait
Source:
ChannelCodec.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

EventChannel implements a pubsub topology for events.

EventChannel implements a pubsub topology for events.

In this topology, peers publish or subscribe to certain communication channels (logical streams of data). In this topology every consumer gets a copy of data, which is in contrast to previous topologies where a single piece of data is routed to exactly one peer. This topology guarantees at least one delivery of messages.

Attributes

Source:
EventChannel.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
trait EventConsumer[F[_], T]

Attributes

Source:
EventChannel.scala
Graph
Supertypes
class Object
trait Matchable
class Any
final case class EventMessage[T](id: ShortString, time: Instant, payload: T, tag: DeliveryTag)

Attributes

Source:
EventChannel.scala
Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any
trait EventPublisher[F[_], T]

Attributes

Source:
EventChannel.scala
Graph
Supertypes
class Object
trait Matchable
class Any
final case class Job[T](payload: T, tag: DeliveryTag)

Attributes

Source:
WorkPoolChannel.scala
Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any
object RPCChannel

RPCChannel implements an async RPC communication channel topology.

RPCChannel implements an async RPC communication channel topology.

In this topology, each server has its own endpoint, where clients can send methods to, server then can decide to response to sender's address, ignore the request, or reject it. Clients can then consume responses, and mark them as processed. This topology models an point to point communication, with at least one delivery semantics, so your processing MUST be idempotent and async, as both responses and requests might be received several times, and with any ordering.

Attributes

Source:
RPCChannel.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
trait RPCClient[F[_], I, O]

Attributes

Source:
RPCChannel.scala
Graph
Supertypes
class Object
trait Matchable
class Any
final case class RPCDefinition[I, O](name: QueueName, clientCodec: ChannelCodec[I], serverCodec: ChannelCodec[O])

RPC topology definition

RPC topology definition

Attributes

Source:
Data.scala
Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any
trait RPCServer[F[_], I, O]

Attributes

Source:
RPCChannel.scala
Graph
Supertypes
class Object
trait Matchable
class Any
final case class RequestMethod[I](id: ShortString, sender: QueueName, payload: I, tag: DeliveryTag)

Attributes

Source:
RPCChannel.scala
Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any
final case class ResponseMethod[I](requestId: ShortString, payload: I, tag: DeliveryTag)

Attributes

Source:
RPCChannel.scala
Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any
final case class TopicDefinition[T](exchange: ExchangeName, codec: ChannelCodec[T], topic: TopicNameEncoder[T])

Pub/Sub topology definition

Pub/Sub topology definition

Attributes

Source:
Data.scala
Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any
object TopicName

Attributes

Source:
TopicName.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
final class TopicNameEncoder[A](build: A => String) extends AnyVal

Encoder that encodes types to a lepus.std.TopicName

Encoder that encodes types to a lepus.std.TopicName

Note that this is not a typeclass and it is not used in implicit scope and there are no instances of it.

Attributes

Companion:
object
Source:
TopicNameEncoder.scala
Graph
Supertypes
class AnyVal
trait Matchable
class Any

Attributes

Companion:
class
Source:
TopicNameEncoder.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Source:
TopicSelector.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

WorkPoolChannel implements a work pool topology.

WorkPoolChannel implements a work pool topology.

In this topology, one or more peers produce jobs, and one or more workers compete over processing those jobs. This topology handles workers fail over, so if a worker fails, its jobs will be routed to another worker. However this topology can't guarantee any ordering of messages by definition.

Attributes

Source:
WorkPoolChannel.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
trait WorkPoolClient[F[_], T]

Attributes

Source:
WorkPoolChannel.scala
Graph
Supertypes
class Object
trait Matchable
class Any
final case class WorkPoolDefinition[I](name: QueueName, codec: ChannelCodec[I])

Work pool topology definition

Work pool topology definition

Attributes

Source:
Data.scala
Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any
trait WorkPoolServer[F[_], T]

Attributes

Source:
WorkPoolChannel.scala
Graph
Supertypes
class Object
trait Matchable
class Any

Types

opaque type TopicName

Attributes

Source:
TopicName.scala
opaque type TopicSelector

Attributes

Source:
TopicSelector.scala

Extensions

Extensions

extension (o: ShortString.type)
inline def md5Hex(str: String): ShortString
inline def sha1Hex(str: String): ShortString
inline def sha224Hex(str: String): ShortString
inline def sha256Hex(str: String): ShortString
inline def sha384Hex(str: String): ShortString
inline def sha512Hex(str: String): ShortString
extension (str: String)