RemGlk-rs: a Rust port of RemGlk

The last two weeks I’ve been working hard on something new, and it’s now basically finished. Presenting RemGlk-rs: a Rust port of RemGlk!

Almost all Glk features are present, aside from the sound system. This includes some features that until recently I didn’t even realise the original RemGlk was missing, like mouse input. It’s actually half a port of RemGlk, and half a port of my GlkApi from AsyncGlk, because Rust is more similar to Typescript than it is to C.

This has really stretched my knowledge of Rust. First time using mutexes, reference counting, or the FFI system. I’ve focused mostly on correctness so far, I’ll be looking at what I can do for performance and file size in the future. And of course looking at how to get it working in Emglken!

If you want to give it a test you just need to run cargo build in the top level folder. And then, for example, to link Glulxe against it, you would set the following variables (assuming it is in a sibling folder to glulxe):

GLKINCLUDEDIR = ../remglk-rs/remglk_capi/src/glk
GLKLIBDIR = ../remglk-rs/target/debug
GLKMAKEFILE = Make.remglk-rs