[asio-users] Emilua 0.5 released
Brought to you by:
chris_kohlhoff
From: Vinícius d. S. O. <vin...@gm...> - 2023-12-06 09:32:39
|
Emilua was announced here a few months ago as an execution engine for Lua built on top of Boost.Asio. Now a new version has been released. The focus for this release was refactoring the internals so it'd be easier to build single-binary applications in the future. As an example of this work, now Emilua only ever queries the filesystem if nothing is found on the in-memory module cache. This allows you to pre-populate the module cache with all Lua files that make up your Lua program from main(). Future releases will improve this support even further by focusing on decreasing module cache populating time. So, what's in for C++ programmers? Not every piece of your C++ program is critical. For boring tasks where performance doesn't matter as much, you can just write it in Lua and enjoy a tight integration with asio::io_context so it communicates adequately with your C++ code. You can also set up some C++ routines to be called from Lua. There's a new tutorial on how to embed this runtime in your C++ programs: < https://docs.emilua.org/api/0.5/tutorial/embedding.html>. Aside from this work, there are a couple of big features in this release as well: - Support for Linux's Landlock. - Support for FreeBSD's Capsicum. These are the sandboxing technologies that better accommodate compartmentalised application development built around capabilities. The full changelog is available at < https://docs.emilua.org/api/0.5/changelog.html>. This is also the last version that's going to include builtin HTTP and WebSocket support. From 0.6 onwards you'll have to install a separate plugin to have access to these features. If you're writing libraries based on Boost.Asio, you might find it useful to write Lua bindings using Emilua. This would give you: - A test bench to quickly iterate over your high-level API by hiding unimportant boilerplate found on C++ and ASIO code. - A cleaner language to write unit tests with. - A larger public for your API (Lua users). I also found several bugs with Boost.Asio on FreeBSD while working on this release, but I'm struggling to report them using Github. I'm not sure how to proceed here. Is there an alternative way to send reports and pull requests w/o Github? -- Vinícius dos Santos Oliveira https://vinipsmaker.github.io/ |