solana_kit_rpc_subscriptions library

Subscription client for the Solana Kit Dart SDK.

This package is the composition layer that ties together the RPC subscriptions API, WebSocket channel, subscribable pattern, JSON serialization, and error handling packages.

The primary entry points are the createSolanaRpcSubscriptions and createSolanaRpcSubscriptionsFromTransport factory functions.

The package also exposes the building blocks for custom compositions:

  • Autopinging: keep-alive pinging
  • Channel pooling: reuse channels across subscriptions
  • Subscription coalescing: deduplicate identical subscriptions
  • JSON serialization: standard and BigInt-safe variants

Classes

CancellationToken
A readable token that completes when an operation is cancelled.
CancellationTokenSource
A source that owns a CancellationToken and can cancel it.
ChannelPool
A pool of channel entries.
ChannelPoolEntry
An entry in the channel pool.
DefaultRpcSubscriptionsChannelConfig
Configuration for creating a default RPC subscriptions channel creator.
DefaultRpcSubscriptionsConfig
Default configuration for Solana RPC subscriptions.
DefaultRpcSubscriptionsTransportConfig
Configuration for createDefaultRpcSubscriptionsTransport.
PendingRpcSubscriptionsRequest<TNotification>
A pending RPC subscription request.
RpcSubscribeOptions
Options for subscribing to RPC notifications.
RpcSubscriptions
An RPC subscriptions client.
RpcSubscriptionsApi
An RPC subscriptions API that maps notification names to subscription plan creators.
RpcSubscriptionsConfig
Configuration for creating an RpcSubscriptions instance.
RpcSubscriptionsPlan<TNotification>
Describes a subscription plan, including the request details and how to execute the subscription on a channel.
RpcSubscriptionsRequest
An RPC subscriptions request containing a method name and optional parameters.
RpcSubscriptionsTransportConfig
Configuration passed to an RpcSubscriptionsTransport.
RpcSubscriptionsTransportExecuteConfig
Configuration for executing a subscription on a channel.

Extensions

SolanaRpcSubscriptionsMethods on RpcSubscriptions
Typed convenience methods for common Solana RPC subscription requests.

Constants

pingPayload → const Map<String, Object>
The JSON-RPC ping payload sent to keep connections alive.

Functions

createChannelPool() ChannelPool
Creates a new empty ChannelPool.
createDefaultRpcSubscriptionsChannelCreator(DefaultRpcSubscriptionsChannelConfig config) RpcSubscriptionsChannelCreator
Creates a default RPC subscriptions channel creator with standard JSON serialization.
createDefaultRpcSubscriptionsTransport(DefaultRpcSubscriptionsTransportConfig config) RpcSubscriptionsTransport
Creates an RpcSubscriptionsTransport with default behaviors.
createDefaultSolanaRpcSubscriptionsChannelCreator(DefaultRpcSubscriptionsChannelConfig config) RpcSubscriptionsChannelCreator
Creates a default Solana RPC subscriptions channel creator.
createRpcSubscriptionsTransportFromChannelCreator(RpcSubscriptionsChannelCreator createChannel) RpcSubscriptionsTransport
Creates an RpcSubscriptionsTransport from a channel creator.
createSolanaJsonRpcIntegerOverflowError(String methodName, List<Object> keyPath, BigInt value) → SolanaError
Creates a SolanaError for an integer overflow in a JSON RPC response.
createSolanaRpcSubscriptions(String clusterUrl, [DefaultRpcSubscriptionsChannelConfig? config]) RpcSubscriptions
Creates a Solana RPC subscriptions client with stable API methods.
createSolanaRpcSubscriptionsFromTransport(RpcSubscriptionsTransport transport) RpcSubscriptions
Creates a Solana RPC subscriptions client from the given transport.
createSolanaRpcSubscriptionsUnstable(String clusterUrl, [DefaultRpcSubscriptionsChannelConfig? config]) RpcSubscriptions
Creates a Solana RPC subscriptions client with stable and unstable API methods.
createSubscriptionRpc(RpcSubscriptionsConfig config) RpcSubscriptions
Creates an RpcSubscriptions instance from the given config.
getChannelPoolingChannelCreator(RpcSubscriptionsChannelCreator createChannel, {required int maxSubscriptionsPerChannel, required int minChannels}) RpcSubscriptionsChannelCreator
Wraps a channel creator to pool channels.
getRpcSubscriptionsChannelWithAutoping({required CancellationToken abortSignal, required RpcSubscriptionsChannel channel, required int intervalMs}) → RpcSubscriptionsChannel
Wraps an RpcSubscriptionsChannel to send periodic ping messages.
getRpcSubscriptionsChannelWithBigIntJsonSerialization(RpcSubscriptionsChannel channel) → RpcSubscriptionsChannel
Wraps an RpcSubscriptionsChannel to serialize outbound messages using BigInt-safe JSON serialization and deserialize inbound 'message' events using BigInt-safe JSON parsing.
getRpcSubscriptionsChannelWithJsonSerialization(RpcSubscriptionsChannel channel) → RpcSubscriptionsChannel
Wraps an RpcSubscriptionsChannel to serialize outbound messages as JSON strings and deserialize inbound 'message' events from JSON strings.
getRpcSubscriptionsTransportWithSubscriptionCoalescing(RpcSubscriptionsTransport transport) RpcSubscriptionsTransport
Wraps an RpcSubscriptionsTransport to coalesce identical subscriptions.

Typedefs

RpcSubscriptionsChannelCreator = Future<RpcSubscriptionsChannel> Function({required CancellationToken abortSignal})
A function that creates an RpcSubscriptionsChannel.
RpcSubscriptionsTransport = Future<NotificationStreams> Function(RpcSubscriptionsTransportConfig config)
A function that acts as an RPC subscriptions transport.