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:
- RPC protocol: JSON-RPC
- Message format: JSON
- Transport protocol: HTTP
- Synchronous effect: Identity
- Asynchronous effect: Future
- Message codec: Circe
- HTTP & WebSocket client: JRE HTTP client
- HTTP & WebSocket server: Undertow
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
Class | Artifact | Protocol | Service discovery |
---|---|---|---|
JsonRpcProtocol (Default) | automorph-core | JSON-RPC | OpenRPC, OpenAPI |
WebRpcProtocol | automorph-core | Web-RPC | OpenAPI |