3 ms·
Is there a UI library that goes with that?
by auggierose 2y ago
Is there a UI library that goes with that?
- DrNosferatu 2y agoA Web Interface for Cosmopolitan Apps would be a great bridge for an UI.
- auggierose 2y agoI 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?
- brabel 2y agoLua 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.
- DrNosferatu 2y agoAny examples and good tutorials on how to best go about it?
- brabel 2y agoBest go about using Redbean? The project is well documented: https://redbean.dev/ 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 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-c/ https://lucasklassmann.com/blog/2019-02-02-embedding-lua-in-... which seems pretty straightforward to follow.
- stutonk 2y agoquickjs [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/ https://bellard.org/quickjs/ [2] https://github.com/saghul/txiki.js/ https://github.com/saghul/txiki.js/
- airstrike 2y agoI would suggest iced if you're ok with Rust https://github.com/iced-rs/iced https://github.com/iced-rs/iced It's amazing, but I should warn documentation right now is not quite thorough
- lxgr 2y agoLlamafile does that (i.e. it hosts a local web server that presents a GUI).
- BiteCode_dev 2y agoI would use redbean, from the same author, and use HTML.
- auggierose 2y agoImpressive stuff. Unfortunately, Lua. From a user point of view (well, at least this user), TypeScript would be a better fit.
- ukuina 2y agoWhat are your misgivings about Lua?
- NateEag 2y agoNot OP, but having written some Lua, I can make some guesses: - Relatively obscure language, so potential contributor base is limited from the start - Lua shares PHP's "One datatype to rule them all" design, which works but feels ugly. In PHP it's "arrays", in Lua it's "tables", but either way you have all the attendant problems and weird edge cases to learn - Expanding on above point, Lua's APIs for working with tables are, uh, idiosyncratic. Slicing a "list", last I looked, was an unintuitive monstrosity like `new_table = { table.unpack(old_table, start_index, length) }` I could keep going, but I have other things to do during my brief time in this universe. To any Lua aficionados out there, my apologies if I've misrepresented it. Corrections to my misunderstandings will be appreciated.
- samatman 2y ago> Relatively obscure language Lua is among the most used languages in existence. It's probably the most used language by under-21-year-olds, and almost certainly so for under 16. Roblox is absolutely enormous. It's the usual choice of embedded scripting language, so a great number of programmers who don't use it as a daily driver, nonetheless learn it to modify this or that program. Being a very simple, minimalist language, this is easy to do. It's true that it's missing some affordances which you'll find in larger (and frequently less efficient) languages. You'll end up doing more iteration and setting of metatables. That bothers some people more than others. These are the tradeoffs one must accept, to get a 70KiB binary which fits in an L1 cache while being multiples faster than e.g. Python or Ruby.