Bunbury

joined 2 months ago
[โ€“] Bunbury@programming.dev 2 points 2 weeks ago

You may want to take a look at the TockOS instead of Linux if you're doing embedded dev - it's a safer alternative to Linux for embedded devices, and generally easier to work with (though the supported hardware alternatives are not as numerous as with Yocto / linux).

I'd recommend against something like Debian for embedded work - it's too large, and presents too much of an attack surface for most embedded project needs. And while Debian doesn't often see critical security vulnerabilities, it does on occasion and you'd need to figure out a method for performing those upgrades on your embedded device (which wouldn't be fun for yourself or anyone else who uses your project). Just something to keep in mind..

[โ€“] Bunbury@programming.dev 6 points 1 month ago

Although the OP has already decided to go with Lua, if anyone else looking at this thread is considering their options for making a plugin system, WASM/WASI is an excellent choice - mostly because it allows users to use Python (a favorite among programming newbies) along with any other language that compiles to WebAssembly (which will eventually be all languages).

You can even use something like Extism which is purpose-built as a drop-in library for creating a plugin system with WASM plugins, or you can use other runtime options like Wasmtime (built in Rust, from the ByteCode Alliance - where the WASI spec is being developed) or the WasmEdge runtime (built in C++, which is a CNCF project and is already being used in areas like eBPF to help users build Linux Kernel extensions).

In short, if you're building a project that has to be maintained long-term and you need a plugin system, then choose WebAssembly - you can't go wrong.

Cheers!