What is LiteSVM on Solana
LiteSVM is a fast, lightweight in-process Solana runtime for testing programs in Rust — an alternative to solana-program-test that runs ~10x faster.
LiteSVM is a fast, lightweight library for testing Solana programs in Rust. It's an alternative to solana-program-test (the official testing framework) that prioritises speed and ergonomics.
What it does
LiteSVM wraps Solana's SVM (Sealevel Virtual Machine) component directly, giving you an in-process Solana runtime without spinning up a validator. You load programs, send transactions, and inspect state — all synchronously, in milliseconds.
Why people use it
- Speed. Tests run roughly 10x faster than
solana-program-testbecause there's no validator, no async runtime, and no RPC layer. - Simple API. Synchronous
send_transaction,get_account,airdrop, etc. Notokio, noBanksClientround-trips. - Time and slot control. Warp the clock, jump slots, override sysvars, and set account state arbitrarily — useful for testing time-locked logic, vesting, and governance epochs.
- Program cloning. Load real mainnet or devnet programs and accounts into the test environment.
Typical usage
use litesvm::LiteSVM;
let mut svm = LiteSVM::new();
svm.airdrop(&payer.pubkey(), 1_000_000_000).unwrap();
svm.add_program_from_file(program_id, "target/deploy/my_program.so").unwrap();
let tx = Transaction::new_signed_with_payer(/* ... */);
let result = svm.send_transaction(tx);Trade-offs
It's not a full validator — no networking, no gossip, no consensus. So it's purely for unit and integration tests of program logic, not for testing RPC behaviour or multi-node scenarios. For that, you'd still want solana-test-validator or a devnet.
LiteSVM is maintained by the LiteSVM contributors (originating from Anza and community work) and lives at github.com/LiteSVM/litesvm.