Re:Cosmopolitan v3.5.0
by auggierose on Monday June 24, 2024 @05:20AM
(#40773941)
I am looking for an Electron replacement for writing my apps. Could cosmopolitan be the basis of something like that, or is that not really its purpose?
[ Parent
| on HN ]
Lua is perfect for Redbean because it's tiny and made for embedding, which is this exactly use case. Something like TypeScript would require a transpiler to JS and a JS runtime, which as far as I know, even the smallest one would be much bigger than Lua. And Lua has well defined semantics to call C and be called by C, which may be hard to do with JS/TS.
Re:Cosmopolitan v3.5.0
by DrNosferatu on Monday June 24, 2024 @06:30AM
(#40774313)
Any examples and good tutorials on how to best go about it?
Best go about using Redbean? The project is well documented: https://redbean.dev/
Just go through it, it answers all questions you may come up with IMO.
Or you mean about embedding Lua? The official docs are great too: https://www.lua.org/pil/24.html
If you prefer a tutorial, there's plenty as Lua has been around for a long time. Search on Youtube for example and there's lots of videos.
The top hit on DDG for me was https://lucasklassmann.com/blog/2019-02-02-embedding-lua-in-... which seems pretty straightforward to follow.
quickjs [1] has native support for Cosmopolitan, is meant to be easily embeddable, and is included as part of the standard Cosmopolitan distribution. It looks like qjs also has patches for recent-ish versions of the Typescript compiler as well. Someone has made a nodejs-style project called txiki.js [2] using vanilla qjs. Maybe it would build with Cosmopolitan with some tweaking. But if you're thinking of packaging a whole browser engine like Electron that might be a Sisyphian effort.
[1] https://bellard.org/quickjs/ [2] https://github.com/saghul/txiki.js/
I would suggest iced if you're ok with Rust https://github.com/iced-rs/iced
It's amazing, but I should warn documentation right now is not quite thorough