Rust and Tell - Berlin - Hot code reload in Rust by Robert Krahn

Discover how to enable hot code reloading in Rust, a powerful feature that allows you to modify and reload code while your program is running, without restarting.

Key takeaways
  • Hot code reloading in Rust is possible by defining a crate that can be reloaded while the program is running.
  • The hot lib reloader is a library that can reload a library while the program is running, and it works by watching the library directory for changes and reloading the library when it detects a change.
  • The reloader can be used with cargo expand to generate the necessary code for the library.
  • The library can be reloaded by calling the WaitForAboutToReload function, which will return a token that can be used to check if the library has been reloaded.
  • The reloader can also be used to reload the state of the program, and it provides a WaitForReload function that can be used to wait for the reload to complete.
  • The reloader can be used with the hot macro to define hot reloadable functions, which can be reloaded while the program is running.
  • The reloader has some limitations, such as not being able to reload traits and not being able to change the type or return type of a function.
  • The reloader can be used with the libloading crate to load the library, and it provides a getSymbol function that can be used to get a pointer to a function in the library.
  • The reloader can be used with the WaitForAboutToReload and WaitForReload functions to wait for the reload to complete.
  • The reloader can be used with the lib crate to load the library, and it provides a getSymbol function that can be used to get a pointer to a function in the library.
  • The reloader has some limitations, such as not being able to reload traits and not being able to change the type or return type of a function.
  • The reloader can be used with the hot macro to define hot reloadable functions, which can be reloaded while the program is running.
  • The reloader can be used with the WaitForAboutToReload and WaitForReload functions to wait for the reload to complete.
  • The reloader can be used with the libloading crate to load the library, and it provides a getSymbol function that can be used to get a pointer to a function in the library.