Горячая перезагрузка (hotreload) позволяет менять код работающего приложения, не перезапуская его после каждого изменения. Она также сохраняет состояние программы, поэтому не нужно повторять подготовительные шаги: подключаться к БД, открывать и редактировать тестовые файлы или расставлять машины для симуляции столкновения в физическом движке.
Сегодня я хочу рассказать как выполнить горячую перезагрузку в Rust с помощью динамических библиотек и как я реализовал её в своём крейте hotcode.
Хабр не позволяет встраивать mp4 видео по ссылке, поэтому тут просто картинка из демки. Видео демо hotreload’а можно увидеть в README репозитория.
Динамические библиотеки