yew
yew copied to clipboard
Yew Agent documentation
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
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.
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