urbit / shrub

An operating function (Prototype)
https://urbit.org
MIT License
29 stars 2 forks source link

Mast & Eyre channels in %neo #99

Closed R-JG closed 1 month ago

R-JG commented 1 month ago

Mast is a front-end model inspired by HTMX. It is also quite different from it. Mast takes the idea of applying minimal updates to the DOM with content rendered on the server, but instead of the developer writing swap logic, a diffing algorithm automatically creates the update and pushes it through an Eyre SSE channel to the Mast script on the browser which then executes the swaps. In addition to this, Mast's event attributes let you specify event listeners on elements such that the triggered events are poked into handlers in your ship, meaning that all of your client side interface logic can be implemented in Hoon, within Urbit.

To do shrub Mast I needed to add Eyre channel support to neo, so that is also contained in this PR.