automorph.spi

package automorph.spi

Members list

Packages

Type members

Classlikes

trait AsyncEffectSystem[Effect[_]] extends EffectSystem[Effect]

Asynchronous computational effect system plugin.

Asynchronous computational effect system plugin.

The underlying runtime must support monadic composition of effectful values and creation of externally completable effects.

Type parameters

Effect

effect type (similar to IO Monad in Haskell)

Attributes

Companion
object
Supertypes
trait EffectSystem[Effect]
class Object
trait Matchable
class Any
Known subtypes
class FutureSystem
class ZioSystem[Environment]

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type

Client transport protocol plugin.

Client transport protocol plugin.

Enables RPC client to send requests and receive responses using specific transport protocol.

Passively sends requests and receives responses to and from a remote endpoint.

Type parameters

Context

RPC message context type

Effect

effect type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class RabbitMqClient[Effect]
class HttpClient[Effect]
class JettyClient[Effect]
class UrlClient[Effect]
class LocalClient[Effect, Context]
trait EffectSystem[Effect[_]]

Computational effect system plugin.

Computational effect system plugin.

Enables remote APIs to use specific effect handling abstraction.

The underlying runtime must support monadic composition of effectful values.

Type parameters

Effect

effect type (similar to IO Monad in Haskell)

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait AsyncEffectSystem[Effect]
class FutureSystem
class ZioSystem[Environment]
class TrySystem
Show all

Existing server transport layer integration plugin.

Existing server transport layer integration plugin.

Enables RPC endpoint to integrate with and handle requests from an existing server infrastructure.

Passively parses requests to be processed by the RPC handler and creates responses usable by specific server.

Type parameters

Adapter

transport layer adapter type

Context

RPC message context type

Effect

effect type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class GenericEndpoint[Effect, Context]
class AkkaHttpEndpoint[Effect]
class FinagleHttpEndpoint[Effect]
class JettyHttpEndpoint[Effect]
class JettyWebSocketEndpoint[Effect]
class TapirHttpEndpoint[Effect]
class UndertowHttpEndpoint[Effect]
class VertxHttpEndpoint[Effect]
class VertxWebSocketEndpoint[Effect]
Show all
trait MessageCodec[Node] extends MessageCodecMeta[Node]

Structured message format codec plugin.

Structured message format codec plugin.

Enables serialization of RPC messages into specific structured data format.

The underlying data format must support arbitrarily nested structures of basic data types. Given library must provide intermediate representation of structured data (i.e. document object model).

Type parameters

Node

message format node type

Attributes

Supertypes
trait MessageCodecMeta[Node]
class Object
trait Matchable
class Any

RPC request handler.

RPC request handler.

Processes remote API requests and invoke bound API methods.

Type parameters

Context

RPC message context type

Effect

effect type

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class ApiRequestHandler[Node, Codec, Effect, Context]

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type

Remote procedure call protocol plugin.

Remote procedure call protocol plugin.

Enables use of a specific RPC protocol.

The underlying RPC protocol must support remote function invocation.

Type parameters

Codec

message codec plugin type

Context

RPC message context type

Node

message node type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class JsonRpcProtocol[Node, Codec, Context]
class WebRpcProtocol[Node, Codec, Context]

Server transport protocol plugin.

Server transport protocol plugin.

Enables RPC server to receive requests and send responses using specific transport protocol.

Actively receives requests to be processed by the RPC handler and sends responses.

Type parameters

Context

RPC message context type

Effect

effect type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class RabbitMqServer[Effect]
class AkkaServer[Effect]
class JettyServer[Effect]
class NanoServer[Effect]
class UndertowServer[Effect]
class VertxServer[Effect]
Show all