summaryrefslogtreecommitdiffstats
path: root/2021/talks/rust.md
blob: 00e3d4c767bac4bae506f5dd0c2ecc88e824229a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[[!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"]]