Skip to main content

Plugins

Automorph supports integration with other libraries by providing plugins published in separate artifacts. Plugins are separated into categories based on which part of RPC functionality they provide. Specific plugin instances can be supplied to the factory methods of RPC client, RPC server or RPC endpoint at will.

Default plugins

Automorph defines a set of default plugins aiming at a good balance of features, performance and simplicity:

Default plugin set can be obtained by using the automorph-default artifact which itself depends on selected subset of artifacts implementing the default plugins.

This artifact also contains the Default object which provides a convenient way to create default plugin instances or combine default plugins with other plugins.

RPC protocol

ClassArtifactProtocolService discovery
JsonRpcProtocol (Default)automorph-coreJSON-RPCOpenRPC, OpenAPI
WebRpcProtocolautomorph-coreWeb-RPCOpenAPI

Effect system

ClassArtifactLibraryEffect type
IdentitySystem (Default)automorph-coreStandardIdentity
TrySystemautomorph-coreStandardTry
FutureSystem (Default)automorph-coreStandardFuture
ZioSystemautomorph-zioZIORIO
MonixSystemautomorph-monixMonixTask
CatsEffectSystemautomorph-cats-effectCats EffectIO
ScalazEffectSystem (Deprecated)automorph-scalaz-effectScalaz EffectIO

Message codec

ClassArtifactLibraryNode TypeCodec
CirceJsonCodec (Default)automorph-circeCirceJsonJSON
JacksonJsonCodecautomorph-jacksonJacksonJsonNodeJSON
UpickleJsonCodecautomorph-upickleuPickleValueJSON
UpickleMessagePackCodecautomorph-upickleuPickleMsgMessagePack
ArgonautJsonCodecautomorph-argonautArgonautJsonJSON

Transport layer

Client transport

ClassArtifactLibraryProtocol
HttpClient (Default)automorph-coreStandardHTTP, WebSocket
JettyClientautomorph-jettyJettyHTTP, WebSocket
UrlClientautomorph-coreStandardHTTP
RabbitMqClientautomorph-rabbitmqRabbitMQAMQP
SttpClientautomorph-sttpSTTP
->automorph-sttpArmeriaHTTP
->automorph-sttpAsyncHttpClientHTTP, WebSocket
->automorph-sttpHttpClientHTTP, WebSocket
->automorph-sttpOkHttpHTTP, WebSocket
LocalClientautomorph-coreStandard

Server transport

ClassArtifactLibrary
UndertowServer (Default)automorph-undertowUndertow
VertxServerautomorph-vertxVert.x
JettyServerautomorph-jettyJetty
AkkaServerautomorph-akka-httpAkka HTTP
NanoServerautomorph-coreNanoHTTPD
RabbitMqServerautomorph-rabbitmqRabbitMq

Endpoint transport

ClassArtifactLibrary
UndertowHttpEndpointautomorph-undertowUndertow
UndertowWebSocketEndpointautomorph-undertowUndertow
VertxHttpEndpointautomorph-vertxVert.x
VertxWebSocketEndpointautomorph-vertxVert.x
JettyHttpEndpointautomorph-jettyJetty
JettyWebSocketEndpointautomorph-jettyJetty
AkkaHttpEndpointautomorph-akka-httpAkka HTTP
FinagleEndpointautomorph-finagleFinagle
TapirHttpEndpointautomorph-tapirTapir
->automorph-tapirArmeria
->automorph-tapirVert.x
->automorph-tapirHttp4s
->automorph-tapirNetty
LocalEndpointautomorph-core