Show HN: Run GUIs as Scripts

(github.com)

17 points | by zero-st4rs 4 days ago

2 comments

  • alienbaby 2 hours ago
    I see aot if these kinda of links to GitHub repositories with the user obviously keen on showing people, but they then describe what it is / does using specialist / domain language which can make it quite hard to get just what it is I'm looking at, or what I can do with it, and where / why it would be useful. I do wish people would consider their audience after posting 'look at this thing' links, and that people might not quite be as familiar with acronyms and domain specific terminology without a bit more of a plain speaking background description as to what is being shown off! Maybe even some screenshots too.

    I mean, I can follow ops intent to a general degree, it sounds interesting, but ..

    • zero-st4rs 1 hour ago
      > I mean, I can follow ops intent to a general degree, it sounds interesting, but ..

      Thanks for trying to meet me halfway. I hope I can bridge the gap.

      The repository is the codebase for a GUI toolkit. It runs ruby scripts that make use of a custom templating language (like html), and a super class that provides similar component technology you'd likely find in vue or react. (Hokusai::Block).

      When the ruby script is run from the binary built from the codebase (hokusai-pocket), it spawns a window with your application. There are releases for x86 linux, windows, and osx - and also arm64 linux. You just write your application, and run it with `hokusai-pocket run:target=app.rb`

      The hokusai-pocket binary also include a command for publishing your application as a standalone binary for different platforms, but I'm currently working on that.

      So all in all, it is a gui toolkit + runner that you can download for x86 linux, windows, and osx to dynamically run desktop applications.

      I mentioned cutting its teeth on a photoshop clone. Here's a screenshot: https://file.skinnyjames.net/demo.gif

  • apitman 4 hours ago
    This is potentially very interesting to me, but I'm having a hard time under exactly what it is. Could you give a little background on what motivated it, and what the core features are?
    • zero-st4rs 1 hour ago
      Thanks for the question!

      The motivation came from building desktop applications and working with awesome but cumbersome GUI toolkits like Nuklear.

      I built a graphics backend-agnostic GUI library in CRuby called Hokusai, but Hokusai uses FFI, isn't portable, and is hard to distribute. (Need a Ruby interpreter on the target)

      I ported the library to MRuby, developed some build tools, and now have a portable binary for different platforms that can run a dynamic desktop application/game that is written in Ruby.

      You can try it yourself by downloading the latest release and running an app like: https://github.com/skinnyjames/hokusai_demo_paint

      If you notice the paint repository, there is nothing to build, just ruby scripts and assets.

      The tool also has commands to build your application for different platforms as standalone binary, but I'm currently working in that space for other reasons.

      There are of course constraints to using MRuby vs CRuby, but I hope I speak to how this library addresses those.

    • ux266478 2 hours ago
      It seems like a crossplatform GUI toolkit built atop of Raylib, where the primary languages you're working in are Ruby and CSS.
      • zero-st4rs 1 hour ago
        Yeah! That's pretty accurate, although it's not quite css/html.

        It also integrates some helpful libraries, like libuv for cpu intensive tasks and I'm currently working on adding networking/HTTP and builds for android (it already runs on a pinephone).

        The thing I think that is cool is that you don't need to compile your apps, you can just run them with the binary.

    • xattt 2 hours ago
      I’d also like to see some discussion why this is not Apple Script.