Subsecond: A runtime hotpatching engine for Rust hot-reloading
a year ago
- #Hot-Patching
- #Rust
- #Development-Tools
- Subsecond 是一个 Rust 库,支持在无需重启的情况下对运行中的应用程序进行热补丁,适用于游戏引擎和服务器。
- 提供 ThinLinking 功能,可在开发模式下加速 Rust 编译。
- 使用方法是通过 `subsecond::call` 调用函数,自动重定向到最新版本。
- 需要第三方工具(如 Dioxus CLI)加载补丁,可通过 `cargo binstall dioxus-cli` 安装。
- 通过跳转表实现函数调用,避免直接修改内存以确保安全。
- 当前仅支持对 'tip' crate 进行补丁,未来计划支持完整工作区。
- 支持全局变量、静态变量和线程局部变量的热重载,但存在已知限制。
- 由于布局和对齐约束,不支持结构体的热重载。
- 内置 ThinLink(Rust 的快速链接器),已集成到 Dioxus CLI 中。
- 平台支持包括主流操作系统和 WebAssembly,但在 iOS 设备等场景存在限制。
- 鼓励框架作者通过徽章标识对 Subsecond 的支持。
- 采用 MIT 许可证,可通过 GitHub 赞助获得支持。