hotload-0.9.0 has been yanked.
Visit the last successful build:
hotload-1.1.1
dlopen2
[
This is a fork of the original, now unmaintained dlopen with updated dependencies, bug fixes and some new features.
Overview
This library is my effort to make use of dynamic link libraries in Rust simple. Previously existing solutions were either unsafe, provided huge overhead of required writing too much code to achieve simple things. I hope that this library will help you to quickly get what you need and avoid errors.
Quick example
use ;
use Hotload;
Features
Main features
- Zero cost hot update dynamic library; supporting DLL, SO
Comparison with other libraries
| Feature | dlopen2 | hotload | hot-lib-reloader |
|---|---|---|---|
| Basic functionality | Yes | Yes | Yes |
| Multiplatform | Yes | Yes | Yes |
| Dangling symbol prevention | Yes | Yes | Yes |
| Thread safety | Yes | Yes | No support for SetErrorMode (library may block the application on Windows) |
| Loading of symbols into structures | Yes | Yes | No |
| Overhead | Minimal | Minimal | Some overhead |
| Low-level, unsafe API | Yes | Yes | Yes |
| Object-oriented friendly | Yes | Yes | Yes |
| Load from the program itself | Yes | Yes | No |
| Obtaining address information (dladdr) | Yes | Yes | No |
| Auto reload | No | Yes | Yes |
| Is haved load new dll event | No | Yes | No |
| Zero cost, Is not lock | No | Yes | No |
Usage
Cargo.toml:
[]
= "0.6"
= "0.9"
Documentation
License
This code is licensed under the MIT license.
Changelog
Acknowledgement
Special thanks to dlopen2 and hot-lib-reloader