yew icon indicating copy to clipboard operation
yew copied to clipboard

Yew Agent documentation

Open TiemenSch opened this issue 1 year ago • 2 comments
trafficstars

This is about:

  • [ ] A typo
  • [x] Innaccurate/misleading documentation (e.g. technically incorrect advice)
  • [x] Undocumented code
  • [ ] Outdated documentation
  • [ ] Other

Problem https://github.com/yewstack/yew/blob/master/website/versioned_docs/version-0.21/concepts/agents.mdx

The agents page states that agent communication happens over the bincode codec while it merely is a default. However, just like with gloo-worker itself, the Codec is already perfectly changeable.

Especially since bincode does not support "complicated" data in the sense that deserialize_any is unsupported (https://github.com/bincode-org/bincode/issues/386). This might prevent users from adopting a WebWorker or send them in a deserialization rabbit-hole as their data fails to be passed over the fence with bincode.

Also, is the public/private agent still a thing?

Details about the solution you'd like

I think the most pragmatic solution would be to change the docs to state that bincode is merely the default and point to the Fibonacci example that already uses postcard instead of bincode. yew-agent's docs itself could also point a bit better to what components dictate the codec (Registrar and Provider).

Additional context

https://github.com/yewstack/yew/blob/f6b23f08284dec949efaf860fbe8e9198e3d0bed/examples/web_worker_fib/src/agent.rs#L10

Questionaire (Optional)

  • [ ] I'd like to write this documentation
  • [ ] I'd like to write this documentation but I'm not sure what's needed
  • [x] I don't have time to add this right now, but maybe later

TiemenSch avatar Jan 09 '24 14:01 TiemenSch

this. literally have no idea how to use the agents. there is no decent documentation for them anywhere and it makes developing anything that requires that kind of functionality almost impossible.

zxq5-dev avatar Aug 01 '24 18:08 zxq5-dev

While not exactly documentation, I wrote the ratio-reactor crate as an easy to use webworker abstraction. Perhaps the crate and especially the examples are worth taking a look at. https://gitlab.com/ratio-case-os/rust/ratio-reactor

TiemenSch avatar Aug 19 '24 14:08 TiemenSch