#emacs #module #dynamic #developing #bindings #reloading #load

emacs-rs-module

An Emacs dynamic module that helps developing other dynamic modules, in Rust

18 releases (breaking)

0.19.0 Mar 16, 2024
0.18.0 Sep 26, 2021
0.17.0 Mar 9, 2021
0.13.0 Mar 11, 2020
0.1.2 Dec 23, 2017

#3 in #reloading

Download history 27/week @ 2024-07-05

595 downloads per month

BSD-3-Clause

84KB
1.5K SLoC

Emacs Rust Module

This is an Emacs dynamic module that aims to streamline the development of other Emacs dynamic modules, written in Rust.

Installation

  • Build
    cargo build
    
  • Load the module in Emacs
    (module-load "/path/to/emacs-rs-module/target/debug/libemacs_rs_module.dylib")
    

Live reloading another module

To be reloadable, the module must export an entry point named emacs_rs_module_init. See test-module.

Run this in Emacs after each cargo build to reload the module:

(rs-module/load "/path/to/my-module/target/debug/libmy_module.dylib")

TODOs

  • Add debug facilities.
  • Define interface for unloading.
  • Report ERT test results to cargo.

Dependencies

~1.8–2.6MB
~52K SLoC