[[!meta title="Extending Emacs in Rust with Dynamic Modules"]] [[!meta copyright="Copyright © 2021 Tuấn-Anh Nguyễn"]] [[!inline pages="internal(2021/info/rust-nav)" raw="yes"]] <!-- You can manually edit this file to update the abstract, add links, etc. ---> # Extending Emacs in Rust with Dynamic Modules Tuấn-Anh Nguyễn [[!inline pages="internal(2021/info/rust-schedule)" raw="yes"]] Dynamic module support has been available since Emacs 25. It can be used to extend Emacs with native libraries, for performance, OS-specific features, or other functionalities that would take a lot of time to re-implement in Lisp. The officially supported language is C, which is tedious and error-prone to use. This talk discusses a **safe** alternative that is also a lot **more convenient**: writing these dynamic modules in Rust. # Outline - Walking through creating **a simple dynamic module** in Rust, including setting up CI. - Going through and explaining the **available APIs**. <!--- 40 minutes: All of the above, together with reporting the experience of using it in real packages (e.g. tree-sitter), as well as discussing **challenges and potential improvements** to dynamic modules in general.--> [[!inline pages="internal(2021/captions/rust)" raw="yes"]] [[!inline pages="internal(2021/info/rust-nav)" raw="yes"]]