Hasty Briefsbeta

双语

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 赞助获得支持。