Field report on scripting Rust

by Gergely Nagy

I needed to embed a scripting language within Rust, to drive a program of mine. To do so, I embarked on an Epic Quest to discover what’s available, how they work, how they perform, and how much joy they spark when working with them.

In this talk, I’d touch upon Roto, Lua, Rhai, Koto, Rune, Dyon, QuickJS, and Steel, with an honorable mention of wasmtime. Ease of integration into an async, performance critical server, upsides, downsides, and lessons learned.

The talk will assume some Rust knowledge, but not much. Experience with other languages, and knowledge of basic programming concepts (such as threads, memory management basics) should be enough to understand it.

Picture of Gergely Nagy

Gergely Nagy

he/him
Alleged Malicious Actor (as defined by Anthropic), Noble Internet Mouse, Serial drive-by contributor
Links: icon of mastodon

I’m a serial drive-by contributor. I like to play with new things, and I often end up using them in unexpected ways, which result in bug reports, feature requests, and sometimes even patches.

I’ve been doing this for well over two decades, my fingerprints are all over the place. If you used Debian, you’re at least indirectly depending on code I wrote. If you used syslog-ng, I served as its maintainer for a while. If you have a mechanical keyboard powered by QMK? I wrote tap-dance. If you have a Keyboardio? Large parts of Kaleidoscope are my work, and Chrysalis started as my pet project. I contributed to Forgejo, I wrote iocaine, and I touched way too many projects to list.

I was a Debian Developer, an Application Manager, had a stint as ftp-master assistant. Nowadays I write literate NixOS configurations in Org mode for fun.