| Crates.io | spice-client |
| lib.rs | spice-client |
| version | 0.2.0 |
| created_at | 2025-07-04 20:28:48.117904+00 |
| updated_at | 2025-10-04 01:08:46.616431+00 |
| description | A pure Rust SPICE client library with native and WebAssembly support |
| homepage | https://github.com/arsfeld/quickemu-manager |
| repository | https://github.com/arsfeld/quickemu-manager |
| max_upload_size | |
| id | 1738451 |
| size | 903,508 |
A modern SPICE (Simple Protocol for Independent Computing Environments) client implementation in pure Rust with WebAssembly support.
โ ๏ธ Experimental: This library is under active development and APIs are subject to change. We're working on stabilizing the interface and will have a detailed roadmap available soon.
* Windows support is included but currently untested. Contributions welcome!
Modern Design with Platform Flexibility
๐ฅ๏ธ Native App ๐ Web Browser
โ โ
โโโโโโผโโโโโ โโโโโโผโโโโโ
โ Tokio โ โ WASM โ
โ TCP โ โWebSocketโ
โโโโโโฌโโโโโ โโโโโโฌโโโโโ
โ โ
โโโโโโโโโโฌโโโโโโโโโโโโโโโโ
โ
โโโโโโโผโโโโโโ
โ SPICE โ
โ Server โ
โโโโโโโโโโโโโ
Add to your Cargo.toml:
[dependencies]
spice-client = "0.1.0"
use spice_client::{SpiceClient, SpiceError};
#[tokio::main]
async fn main() -> Result<(), SpiceError> {
// Connect to SPICE server
let mut client = SpiceClient::new("localhost".to_string(), 5900);
client.connect().await?;
// Start event processing
client.start_event_loop().await?;
Ok(())
}
| Channel | Status | Description |
|---|---|---|
| Main | โ | Connection setup and control |
| Display | โ | Screen rendering and updates |
| Inputs | โ | Keyboard and mouse input |
| Cursor | โ | Hardware cursor support |
| Audio | ๐ง | Coming soon |
| USB | ๐ง | Planned |
# Standard build
cargo build --release
# Run tests
cargo test
# Install wasm-pack
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
# Build for web
wasm-pack build --target web
For browser deployments, a WebSocket-to-TCP proxy is required:
# Example proxy setup
python examples/websocket-proxy.py --spice-host localhost --spice-port 5900
This is an experimental implementation focusing on core functionality:
Working:
In Progress:
Planned:
We welcome contributions! Please:
GPL v3 License ๐
Part of the โก Quickemu Manager project