Void Rust SDK (void-sdk-rust)
The official Rust SDK for building high-performance WebAssembly plugins on top of the Void framework.
Installation
Add this dependency to your plugin's Cargo.toml:
[]
= "1.0.0"
Quick Start
Create a CDYLIB library and use the void_plugin! macro to register functions:
use HashMap;
use ;
void_plugin!;
Input Extraction API
The SDK provides helper functions to safely extract typed JSON values from incoming parameters:
get_string(&args, "key") -> Result<String, String>get_bool(&args, "key", default_val) -> boolget_int(&args, "key") -> Result<i64, String>get_float(&args, "key") -> Result<f64, String>get_array(&args, "key") -> Result<Vec<Value>, String>get_object(&args, "key") -> Result<Map<String, Value>, String>get_value(&args, "key") -> Result<Value, String>get_null(&args, "key") -> Result<(), String>
Memory Management & Safety API
The SDK automatically manages heap memory during FFI boundaries. You can inspect FFI heap activity or manually allocate/release blocks using these utilities:
Check Memory Statistics
Inspect counts of currently active FFI allocations and total allocated memory size:
let stats = get_memory_stats;
// stats.allocated_objects (usize)
// stats.total_bytes_pinned (u64)
Manual Pinning Helpers
For manually pinning raw arrays of bytes outside the standard invocation lifecycles:
// Pin a slice on the heap and get its pointer
let ptr = unsafe ;
// Unpin the block once finished to avoid memory leaks
unsafe ;
License
ISC License. See LICENSE for details.