Table of Contents

Namespace The.RPC

Classes

AddressedClientBuilder

Builds AddressedClientFactory instances for RPC clients with configurable address and HTTP client factory.

AddressedClientFactory

Creates HttpClient instances for a specific RPC address and category.

AnonymousImplementation<TRequest, TResponse>

Base class for anonymous RPC procedure implementations.

AnonymousProcedure<TRequest, TResponse>

Names an anonymous RPC procedure.

AttachedStream

Represents a stream that can be attached to a message for RPC transport.

ChallengeTicket

A session challenge as the server issued it, held by the client in sealed form until it returns with an answer.

ConnectionException

Thrown when failing to connect to an IEndpoint. Most likely caused by a network or configuration issue rather than by application code or user activity.

DelegateImplementation<TRequest, TResponse>

Wraps a delegate as an authenticated RPC procedure implementation.

EncryptedSession

Manages an encrypted session for secure RPC communication, handling encryption and decryption of packets and streams.

EndpointMessage

Serialized RPC message with a header packet and optional trailer stream.

HandshakeResult

Extended ConnectResult which may include a session handshake.

Implementation

Base class for RPC procedure implementations.

Implementation<TRequest, TResponse>

Base class for authenticated RPC procedure implementations.

KnownLengthStream

Streams which CanSeek have Length, but sometimes we don't need to seek - just to know data sizes for chunking or buffer allocation.

LocalEndpoint

Implementation of IEndpoint which deserialises the text and connects to a local framework instance.

MessageNotEncryptedException

Thrown when a client or endpoint unexpectedly receives an unencrypted message.

Procedure

Defines the base class for RPC procedures.

ProcedureNotRegisteredException

Thrown when an endpoint receives a message it doesn't understand.

Procedure<TRequest, TResponse>

Names a authenticated RPC procedure.

RPCClient

Provides a client for making remote procedure calls (RPC) to an endpoint.

RPCException

Thrown when unable to execute a procedure. Subtypes include ConnectionException and MessageNotEncryptedException.

RPCOptions
RPCService

Functions to execute registered procedures, either locally or through a remote endpoint.

RateLimit

A token bucket for each client: one request per Period on average and up to Burst at once, with up to QueueLimit more waiting their turn.

Serialiser
SessionChallenge

A challenge the client must answer before the server prepares a session.

SessionKey
SessionTicket

Everything the server needs to resume a session, held by the client in sealed form.

SigningProxyEndpoint

Proxies RPCs to another endpoint, vouching for each caller: an outer authenticator verifies the identity named by each ticket, and an inner one signs the ticket for the next endpoint.

WebEndpoint

Implementation of IEndpoint which passes the serialised operations over HTTP

WebMessage

Packet format for messages from EndpointController to WebEndpoint

WellKnownProcedures

Structs

Response<T>
Unit

Interfaces

IEndpoint

Dynamically typed RPC mechanism, used to transport serialised requests and security tokens.

ISessionStore

Stores keys needed to seal a session ticket into an opaque, tamper-evident form that can later be reopened by the key-holder.

Enums

AuthenticationProtocol
HandshakeType
ResponseType