holochain / holochain/docs-pages
[enhancement] Diagram all the (reasonably well-supported) architectures you can build a hApp with
- Dominant language
- Nunjucks
- Stars
- 98
- Forks
- 32
- Avg merge
- 9h 49m
- Merged PRs (30d)
- 2
Description
This request comes from Steve Melville / @evomimic:
> My question (more of an "ask", really) was that Holochain provide examples of supported/recommended run-time architectures. These would show configurations that include the holochain js client, holochain rust client, (others? -- I think Guillem is working on a new configuration). I offered these diagrams as examples, but where does the user's browser fit into these pictures? Tauri? Electron? Holo?
>
>An example of why this matters...
>
>We have developed some Rust code for staging and caching holons [Ed: data primitives in his hApp]. And we realized staging/caching were also useful (arguably MORE useful) on the client-side. So, we thought... well let's compile that Rust code into a MAP [Ed: name of the project] WASM library and link it into our client. Has anyone else tried to do that? Is there a recommended configuration for doing that?
>
> Not having answers to those questions, we muddled along on our own. Since the holochain Rust client wraps the websockets communication with the Conductor, we figured we could just include that in our WASM library.
>
>Then we spent days trying to get that to compile, mucking around with dependencies and scratching our heads. It turns out holochain's Rust Client depends on a couple of libraries (tokio and mio) that don't run under WASM.
>
>It would have saved us literally days of wasted effort, if I'd known that the Rust client can't be used with WASM libraries. It took me awhile to come up with what I'm showing as Option 3 above (with our Rust/wasm library sandwiched between an async js MAP client API and an async adapter to the holochain js client). But is Option 3 a crazy idea that has its own showstoppers? Is there a config the holochain team would recommend for including Rust code on the client side?
Contributor guide
No contributing guide indexed for this repository
Research direction
No files or tests are named. Begin by inventorying the browser, Tauri, Electron, Holochain JS client, Rust client, and WASM configurations described in the request, then document diagrams for the reasonably well-supported architectures and state the relevant client and WASM limitations; done means the supported options and recommendations are clear.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron, javascript, rust, tauri, wasm
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100