Web Build

  • Karl2D has web support without needing emscripten.

Not-WASM

WebUI
  • odin-webui .

    • "Use any web browser as GUI, with Odin in the backend and modern web technologies in the frontend.".

    • WebUI .

      • WebUI's primary focus is using web browsers as GUI, but starting from v2.5, WebUI can also use WebView if you need to use WebView instead of a web browser.

      • Docs .

    • (2025-10-12)

      • .

      • This screenshot summarizes everything.

        • I added the repo as a submodule.

        • Ran the setup.ps1  inside the submodule.

        • Created a main.odin  file.

        • Pasted the code from the "minimal example".

        • Ran odin run  and this window appeared.

      • My impression is that everything is exceptionally opaque. I have no idea what happened. The package is just a binding for the C library. Nothing is native, except for some mini-wrapper for a procedure, for error handling.

      • I didn't have a good impression.

Templating
  • odin-templateless .

    • Extremely simple.

    • Implements just a procedure to replace content inside a {{ }} .

    • Not a template engine by itself.

  • ~ temple .

    • An experimental in-development templating engine for Odin

    • Works via {{ }} .

    • Supports Odin expressions, based on the given context/data

      • {{ this.name.? or_else "no name" }}

      • {{ this.welcome if this.user.new else "" }} .

    • Sounds better than mustache, at least because it follows Odin's syntax.

    • todomvc-odin-htmx .

      • This is mainly here to dogfood the libraries and provide an example.

      • TodoMVC  is a project for comparing web projects, benchmarking, etc. You implement and compare.

      • (2025-10-12)

        • HTMX seemed to be only inside .twig  files, i.e., in the templates.

        • I tried to build and had several issues:

          • Submodules were completely broken, asking for an ssh key, even though the repo is public. I don't know if this makes sense.

            • I had to remove the old submodules and get them again using the public address:

              • From git@github.com:laytan/temple.git  to https://github.com/laytan/temple , for example.

          • The main project simply doesn't compile.

            • There are several errors in Odin and usage that simply don't make sense.

            • I didn't understand. Odin simply doesn't allow what the author tried to do; it's not part of the language.

              • Tried calling functions in the global scope, for example.

              Error: Procedures requiring a 'context' cannot be called at the global scope 
                      ... pl_index := temple.compiled("templates/index.temple.twig", List) 
              
  • ~ odin-mustache .

    • Native implementation of mustache .

      • Port of the "Mustache Logic-less Ruby templates".

    • Works via {{ }} .

    • In theory, I prefer Temple, at least because it follows Odin's syntax.

WASM

Limitations
  • Virtual memory does not exist on the web, so virtual memory allocators will not work.