explaingit

aursen-labs/spume

Analysis updated 2026-06-24

11RustAudience · developerComplexity · 3/5Setup · moderate

TLDR

Spume is a small Rust JSON-RPC client for Solana, built for wasm targets, with optional WebSocket pubsub subscriptions and a 10 MiB response cap by default.

Mindmap

mindmap
  root((spume))
    Inputs
      Solana RPC endpoint
      Account or program ID
    Outputs
      Slot and block data
      Account balance
      Subscription stream
    Use Cases
      Browser dapp
      Live slot feed
      Account watcher
    Tech Stack
      Rust
      WebAssembly
      JSON-RPC
      WebSocket
      Leptos
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a browser dapp that reads Solana account balances over HTTP from wasm

USE CASE 2

Stream live devnet slot updates over WebSocket into a Leptos web app

USE CASE 3

Subscribe to program or signature notifications and cancel the subscription cleanly on drop

USE CASE 4

Fetch large program-account result sets by raising the 10 MiB HTTP response cap

What is it built with?

RustWebAssemblyJSON-RPCWebSocket

How does it compare?

aursen-labs/spume2arons/agent-gitgorkys/chromeprofilemanage
Stars111111
LanguageRustRustRust
Setup difficultymoderateeasyeasy
Complexity3/53/51/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

WebSocket subscriptions are gated behind the pubsub feature flag and tests need a local surfpool simulator.

In plain English

Spume is a small Rust library that lets a program talk to the Solana blockchain. Solana is a cryptocurrency network, and its servers expose a remote interface called JSON-RPC, which is the standard way for outside code to ask questions like the current block number or the balance of an account. The README describes spume as lightweight and ergonomic, and it is built specifically for wasm, which is the format used to run compiled code inside a web browser or a similar sandboxed runtime. There are two ways to use it. The basic mode talks to Solana over plain HTTP, where the client sends a request and waits for a single answer. A typical call creates a WasmClient pointed at a Solana endpoint, then asks for things like the current slot, the node version, the latest blockhash, or the balance of a specific address. The README lists src/methods.rs as the place to find every method that is supported. The second mode is optional and is turned on with a feature flag called pubsub. This mode opens a WebSocket connection, which is a long-lived two-way channel, and lets the program subscribe to a stream of updates. The README lists subscriptions for account, block, logs, program, root, signature, slot, slotsUpdates, and vote. A subscription can be cancelled explicitly, or it will be cancelled on a best-effort basis when the subscription value is dropped. There is one safety detail called out in the README. HTTP responses are capped at 10 MiB by default so that a broken or hostile server cannot fill memory with a huge response. The cap can be raised with a builder method if a specific call, such as fetching all accounts owned by a program, needs more room. The repository includes a small example written with the Leptos web framework that streams the live devnet slot over WebSocket and reads the node version over HTTP. The development section mentions just, clippy, rustfmt, and a local Solana simulator called surfpool that the test recipe spins up and tears down.

Copy-paste prompts

Prompt 1
Show me a WasmClient example that fetches the latest blockhash and current slot
Prompt 2
Write a Leptos component that subscribes to slot updates with spume's pubsub feature
Prompt 3
Explain when I should raise spume's 10 MiB response cap and how to do it safely
Prompt 4
List every JSON-RPC method spume supports in src/methods.rs with one line each

Frequently asked questions

What is spume?

Spume is a small Rust JSON-RPC client for Solana, built for wasm targets, with optional WebSocket pubsub subscriptions and a 10 MiB response cap by default.

What language is spume written in?

Mainly Rust. The stack also includes Rust, WebAssembly, JSON-RPC.

How hard is spume to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is spume for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.