#solana #wasm-client #rpc-client #browser #pubsub #compatible #zstd

wasm_client_solana

A wasm compatible solana rpc and pubsub client

14 releases (5 breaking)

0.6.1 Nov 4, 2024
0.6.0 Oct 20, 2024
0.5.0 Oct 13, 2024
0.4.0 Oct 12, 2024
0.1.0 Sep 13, 2024

#1471 in Web programming

Download history 146/week @ 2024-09-09 356/week @ 2024-09-16 192/week @ 2024-09-23 239/week @ 2024-09-30 1035/week @ 2024-10-07 251/week @ 2024-10-14 58/week @ 2024-10-21 8/week @ 2024-10-28 154/week @ 2024-11-04 8/week @ 2024-11-11

344 downloads per month
Used in 3 crates

Unlicense

1MB
23K SLoC

wasm_client_solana


A wasm compatible solana rpc and pubsub client.


Crate Docs Status Unlicense codecov

Installation

To install you can use the following command:

cargo add wasm_client_solana

Or directly add the following to your Cargo.toml:

[dependencies]
wasm_client_solana = "0.1" # replace with the latest version

Features

This crate provides the following features:

  • js: Enables the use of the wasm-bindgen crate for the js target. This is useful for using the crate in a browser environment.
  • ssr: Enables the use of the reqwest and tokio crates for the ssr target. This is useful for using the crate in a server or non-browser environment.
  • zstd: Enables the use of the zstd as an encoding format and automatically activates the ssr target.

Usage

The SolanaRpcClient provides a wasm compatible client for the solana rpc and pubsub methods.

use solana_sdk::native_token::sol_to_lamports;
use solana_sdk::pubkey;
use wasm_client_solana::ClientResult;
use wasm_client_solana::DEVNET;
use wasm_client_solana::SolanaRpcClient;

async fn run() -> ClientResult<()> {
	let client = SolanaRpcClient::new(DEVNET);
	let address = pubkey!("99P8ZgtJYe1buSK8JXkvpLh8xPsCFuLYhz9hQFNw93WJ");

	client
		.request_airdrop(&address, sol_to_lamports(1.0))
		.await?;
	let account = client.get_account(&address).await?;

	log::info!("account: {account:#?}");

	Ok(())
}

Dependencies

~31–45MB
~753K SLoC