I appreciate that the Conductor now supports the application/wasm mime-type by way of the nickel.rs crate, yet I see that serving the UI is deprecated. Given that I would ideally also like to be able to pre-compress my .wasm and .js loader files, I think a simple static configuration can be made easily with the Gotham web framework. I’ll try to make something.
Hey @pythagorean,
there is currently something in the making that will render web servers for hApps obsolete - at least in the generic Holochain case where the user runs a full-node / conductor locally.
Holoscape is an Electron based end-user deployment that runs hApp UIs in Electron browser windows from files and also wraps the conductor. Still WIP currently, but there might be a first release soon
…not that I want to discourage you from building a UI web server based on Gotham if that is what you need. But if you just want hApps to work properly in a full-node context, I hope Holoscape will deliver on that fairly soon.
What I’ve got here is a full scale Rust/wasm UI built on Yew for Coolcats2 that needs to be served to the browser, I’m sure Holoscape will provide a basic UI for some applications but probably not for all, I’ll certainly be following its progress as well.
Looking forward to seeing Holoscape when it’s done bro…
@pythagorean, just to be clear, why would Coolcats2 need to be served to a browser?
Our reasoning behind deprecating the web server in the conductor was this:
- if the user wants to use a hApp only with the browser, without installing a full node, that is what Holo is for. In that case, a HoloPort will serve a light-client that includes a WASM build of the conductor. So both, UI and conductor will run in the users browser. The http server that delivers this package is a unique piece of Holo, or more precisely, the HoloPort OS.
- if the user is happy to go full Holochain and run their own full instance then there is also no need for networking between the locally running conductor and locally running UI. We just need a way to execute the (web) UI inside a window or tab, but serving it from file system is totally sufficient and gets rid of unnecessary complexity.
In both cases we need some context that sets up both, the conductor with its interfaces and the UI that connects to it.
Holoscape is exactly that context in the generic Holochain (i.e. non-Holo) case that runs the conductor and that also runs the hApp UIs so that users can easily install and use hApps without having to manually set up conductor configs and open a browser to some http://localhost:8080
.
Are you saying you need users to connect to an http server (over the network?) to use Coolcats2 which gets hosted on a remote device - but also that you don’t want to use Holo for that?
I absolutely want to give users the flexibility to run their own instances and not be limited to Holo hosting. There are many ways things can be set up, I am also envisaging a new front end that clones the now open sourced and federated Gab and back ends that into a Coolcats zome on Holochain, so we can create more integration with existing networks as people transition.
I am alao integrating with Gab, fediverse, acitivitypub and many more such as SOLID, Etherum, IPFS & more as part of the OASIS API (which powers Our World)…
Sounds like we are on a similar track and should perhaps compare notes, I am trying to implement everything possible in Rust as well.
Yes would love to collaborate. What else are you trying to interface with?
I wanted to connect everything to everything to remove silos and walled gardens and to help boost the holochain ecosystem by exposing it to all existing platforms, network’s etc so it can act as a stepping stone for everyone to slowly migrate towards Holochain…
Nico, is Holoscape the Holo Web Browser that you and larky are working on or is it something else?
Yep same basic goal, to replace all the walled gardens, up to and including especially Facebook and its groups where so many of us are trapped without alternatives that suffer the same limitations.
It seems like you are focused on the .NET development ecosystem, as I am on Rust now, and that’s the main difference between our projects.
Yes and hopefully we can meet in the middle so we can have the best of both worlds…
Do you have any links or repo etc I could look at so we can see how we can collaborate?
I’m also going to add the pluggable protocol p3 from ceptr to the list…
Here is Coolcats2, the Clutter port I’m using as my starting point.
Yes I loved this, thanks for the work. I was hoping to also integrate parts of this into Our World if that’s ok? How does the licensing currently work? This could be the beginning of how we can collaborate and integrate our work…
It’s GPLv3 unless you need another license, and I gave the Holochain project the right to relicense as well.
Ok great thank you… Let’s stay in touch so we can continue to see how we can collaborate and integrate what we are working on…
https://chat.holochain.org/appsup/channels/our-world-netclient
As for the original subject, this was pretty painless:
This can be made infinitely configurable from here.