hotcode 0.1.3

Library for hotreload in Rust.
Documentation

hotcode

Library for hot-reloading functions in Rust.

Build Status Crates.io Documentation

Overview

This library exposes hotreload attribute, which can be applied to standalone functions or to functions in impl blocks. This attribute makes a function hot-reloadable: its code and behavior can be changed on the fly while the application is still running.

💻 Works on Linux, macOS and Windows.

Usage

Add hotcode to your dependencies:

[dependencies]
hotcode = "0.1.3"

Add cdylib to your library's crate types:

[lib]
crate-type = ["cdylib", "lib"]

Add hotcode::hotreload attribute to your function:

#[hotcode::hotreload]
fn add(a: i32, b: i32) -> i32 {
    a + b
}

Run your application, change the code of this function and rebuild your library using cargo build --lib. The function's behavior will change without restarting the application.

For more information, refer to crate documentation.

Examples

Examples are located in the examples folder. The simplest example is the single_crate project.

Minimum Supported Rust Version (MSRV)

hotcode is supported on Rust 1.89.0 and higher. hotcode's MSRV will not be changed in the future without bumping the major or minor version.

License

hotcode is distributed under the terms of the MIT license. See license.txt for details.