Crate jsonrpsee_server

Source
Expand description

§jsonrpsee-server

jsonrpsee-server is a JSON RPC server that supports both HTTP and WebSocket transport.

Re-exports§

pub use middleware::rpc::RpcServiceBuilder;
pub use jsonrpsee_types as types;
pub use tracing;

Modules§

helpers
Helpers.
http
HTTP related server functionality.
middleware
jsonrpsee-server middleware
ws
WebSocket related server functionality.

Structs§

AlreadyStoppedError
Error when the server has already been stopped.
BatchResponse
Serialized batch response.
BatchResponseBuilder
Builder to build a BatchResponse.
BoundedSubscriptions
This wraps tokio::sync::Semaphore and is used to limit the number of subscriptions per connection.
BoundedWriter
Bounded writer that allows writing at most max_len bytes.
ConnectionGuard
Limits the number of connections.
ConnectionId
Connection ID.
ConnectionState
Connection related state that is needed to execute JSON-RPC calls.
DisconnectError
Error that may occur during crate::server::MethodSink::send or crate::server::SubscriptionSink::send.
Extensions
A type map of protocol extensions.
HttpBody
Default HTTP body used by jsonrpsee.
IsUnsubscribed
Represents a subscription until it is unsubscribed.
MethodResponse
Represents a response to a method call.
MethodResponseFuture
Future that resolves when the method response has been processed.
MethodResponseNotifyTx
Sends a message once the method response has been processed.
MethodSink
Sink that is used to send back the result to the server for a specific method.
Methods
Reference-counted, clone-on-write collection of synchronous and asynchronous methods.
NoopIdProvider
No-op implementation to be used for servers that don’t support subscriptions.
PendingSubscriptionAcceptError
The error returned while accepting a subscription.
PendingSubscriptionSink
Represents a single subscription that is waiting to be accepted or rejected.
PingConfig
Configuration for WebSocket ping/pong mechanism and it may be used to disconnect an inactive connection.
RandomIntegerIdProvider
Generates random integers as subscription ID.
RandomStringIdProvider
Generates random strings of length len as subscription ID.
ResponsePayload
Similar to jsonrpsee_types::ResponsePayload but possible to with an async-like API to detect when a method response has been sent.
RpcModule
Sets of JSON-RPC methods can be organized into “module“s that are in turn registered on the server or, alternatively, merged with other modules to construct a cohesive API. RpcModule wraps an additional context argument that can be used to access data during call execution.
Server
JSON RPC server.
ServerBuilder
Builder to configure and create a JSON-RPC server
ServerConfig
Static server configuration which is shared per connection.
ServerHandle
Server handle.
StopHandle
Represent a stop handle which is a wrapper over a multi-consumer receiver and cloning StopHandle will get a separate instance of the underlying receiver.
Subscription
Wrapper struct that maintains a subscription “mainly” for testing.
SubscriptionKey
Represent a unique subscription entry based on SubscriptionId and ConnectionId.
SubscriptionMessage
Subscription message.
SubscriptionSink
Represents a single subscription that hasn’t been processed yet.
SubscriptionState
Helper struct to manage subscriptions.
TowerService
jsonrpsee tower service
TowerServiceBuilder
Builder for TowerService.

Enums§

BatchRequestConfig
Configuration for batch request handling.
CallOrSubscription
This represent a response to a RPC call and Subscribe calls are handled differently because we want to prevent subscriptions to start before the actual subscription call has been answered.
MethodCallback
Callback wrapper that can be either sync or async.
MethodKind
The kind of the JSON-RPC method call, it can be a subscription, method call or unknown.
MethodResponseError
Method response error.
MethodResult
Result of a method, either direct value or a future of one.
MethodsError
The error that can occur when Methods::call or Methods::subscribe is invoked.
NotifyMsg
A message that that tells whether notification was succesful or not.
RegisterMethodError
The error returned when registering a method or subscription failed.
SendTimeoutError
Error that may occur during crate::server::MethodSink::send_timeout or crate::server::SubscriptionSink::send_timeout.
SubscriptionCloseResponse
Represents what action that will sent when a subscription callback returns.
SubscriptionMessageInner
A complete subscription message or partial subscription message.
TrySendError
Error that may occur during crate::server::MethodSink::try_send or crate::server::SubscriptionSink::try_send.

Traits§

IdProvider
Trait to generate subscription IDs.
IntoResponse
Something that can be converted into a JSON-RPC method call response.
IntoSubscriptionCloseResponse
Convert something into a subscription close notification before a subscription is terminated.

Functions§

batch_response_error
Create a JSON-RPC error response.
prepare_error
Figure out if this is a sufficiently complete request that we can extract an Id out of, or just plain unparseable garbage.
serve
Serve a service over a TCP connection without graceful shutdown. This means that pending requests will be dropped when the server is stopped.
serve_with_graceful_shutdown
Serve a service over a TCP connection with graceful shutdown. This means that pending requests will be completed before the server is stopped.
stop_channel
Create channel to determine whether the server shall continue to run or not.

Type Aliases§

AsyncMethod
Similar to SyncMethod, but represents an asynchronous handler.
ConnectionPermit
Connection permit.
HttpRequest
HTTP request type.
HttpResponse
HTTP response type.
MaxResponseSize
Max response size.
RawRpcResponse
Raw response from an RPC A tuple containing:
Subscribers
Type-alias for subscribers.
SubscriptionMethod
Method callback for subscriptions.
SubscriptionPermit
Subscription permit.
SyncMethod
A MethodCallback is an RPC endpoint, callable with a standard JSON-RPC request, implemented as a function pointer to a Fn function taking four arguments: the id, params, a channel the function uses to communicate the result (or error) back to jsonrpsee, and the connection ID (useful for the websocket transport).