Our great sponsors
- InfluxDB - Collect and Analyze Billions of Data Points in Real Time
- Revelo Payroll - Free Global Payroll designed for tech teams
- SonarLint - Clean code begins in your IDE with SonarLint
- Onboard AI - Learn any GitHub repo in 59 seconds
-
On Windows you'd need to call the LoadLibraryEx method. You'd also need a crate to call Win32 functions, I suggest windows-rs.
-
extism
The framework for building with WebAssembly (wasm). Easily load wasm modules, move data, call functions, and build extensible apps.
Extism - Universal Plugin System w/ WASM
-
InfluxDB
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
-
wit-bindgen - Language Binding Generator for WASM Interface Type
-
There's the abi_stable crate, which provides safe ffi between shared libraries and applications, I also made a simple example (only using the libloading crate), it's as fast as it can be, since there's no extra overhead, but it's not ffi safe and a small change in any of the vtables (traits) can cause segfaults (you can add a version check though)
-
Most similar - rdylib(very unstable)/cdylib (usable) But there are efforts to create frameworks for building own plugin systems, like this one for example https://github.com/VPlugin/VPlugin
-
I've made a little library for working with plugins before. It's just a thin wrapper over libloading, making the thing a little bit more safe and convenient. Maybe you'll find it useful. Allows to load dynamic libraries. https://github.com/megahomyak/pluginator
-
(Also, there's https://github.com/megahomyak/rust_plugin_fuckery, where I experimented with plugin reloading)
-
Revelo Payroll
Free Global Payroll designed for tech teams. Building a great tech team takes more than a paycheck. Zero payroll costs, get AI-driven insights to retain best talent, and delight them with amazing local benefits. 100% free and compliant.