• simonw 2 hours ago

    One-liner with uv to try this out:

      uv run --with pywry python <<'EOF'
      app = PyWry()
      
      def on_button_click(data, event_type, label):
          """Called when the button is clicked."""
          app.emit("pywry:set-content", {"id": "greeting", "text": "Button was clicked!"}, label)
      
      html = """
      <div style="padding: 20px; text-align: center;">
          <h1 id="greeting">Click the button below</h1>
          <button onclick="window.pywry.emit('app:button-click', {time: Date.now()})">
              Click me!
          </button>
      </div>
      """
      
      app.show(
          html,
          callbacks={"app:button-click": on_button_click},
      )
      app.block()
      EOF
    
    Looks promising. Here's a screenshot: https://gist.github.com/simonw/092386c894d3a0deb2572f3155552...
    • simonw 2 hours ago

      I had a poke around in the wheel and it looks like a lot of the heavy lifting is done by this 30.8MB binary file:

      pywry/_vendor/pytauri_wheel/ext_mod.cpython-310-darwin.so

      Looks like that's vendored from this project: https://github.com/pytauri/pytauri

      • rirze 34 minutes ago

        This feels like a Rube-Goldberg kind of integration. I would love to know if there's an actual use for this opinionated stack, because I would've never guessed it.

        • nycdatasci 2 hours ago

          Interesting project. The examples page needs screenshots.

          • swiftcoder 2 hours ago

            Maybe I'm an old fart, but "rendering engine" used to mean 3D graphics. This is actually a cross-platform UI toolkit? Or rather a web toolkit than can be deployed to desktop via Tauri?