D binding and high-level wrappers (WIP) for Emacs dynamic modules. See example and test.d/test.el for its usage.
This library assumes Emacs27 but you can explicitly specify version (e.g. Emacs25, Emacs26, Emacs27) in dub.json:
{
"name": "your-emacs-module"
"license": "GPLv3",
"targetType": "dynamicLibrary",
"versions": ["Emacs27"]
"dependencies": {
"d-emacs-module": "*"
}
}
Note that except emacs_module.deimos
, this library does NOT support Emacs25 and Emacs26.
Emacs 25 features
- basic type (int, double, string, bool) support
- vector type support
- memory management
- non-local exit support
- embedded pointer support
Emacs 26 features
- should_quit support
Emacs 27 features
- process_input support
- time type support
- big int support
- Official Emacs dynamic modules doc
- Official C API (Emacs 27) C/emacs-module.h
- Third-party rust API https://github.com/ubolonton/emacs-module-rs