Kaede Hoshikawa eec07583f1
Agent v2 (#2773)
* Make private bridges.

* Add worker agent.

* Add task type.

* Memorised Task.

* Add station.

* Add Station Agent.

* Subscription.

* Station hooks.

* Reactor Agents.

* Add more description.

* Restart station when closed.

* Remove Station restart.

* Send finish message to bridges.

* Adds a method to read whether a bridge has received finish message for a subscription.

* Update Reactor Agent.

* Decouple macros from it.

* Reactor Macro.

* Reactivate Task.

* Slightly adjust API.

* Add documentation for reactor agents.

* Remove Station.

* Create Task macro.

* Migrate Example.

* Simplify Task Agent Design.

* Implement Sink.

* Agent -> Task in Example.

* Switch to Registrable.

* AgentScopeExt.

* Finish AgentScopeExt.

* Prelude.

* Adjust prelude.

* Fix imports.

* Yew Agent.

* Switch to upstreamed version of gloo.

* Add stub reset.

* Remove example.

* Add Reset for Worker agents.

* merge fix-ci into "agent-v2"

* Switch to released version of gloo.

* Adds Runtime.

* A LocalRuntime.

* Add note.

* Add SSR benchmark.

* Only create default runtime if no custom runtime is set.

* Use jemalloc for benchmarking.

* Remove once_cell for web assembly.

* Add time.

* Fix wasm_bindgen.

* Adjust inlining.

* merge local-runtime into "agent-v2"

* Add reset.

* Simplify task agent.

* SSR for tasks.

* Optimise benchmark output.

* Optimise BufWriter.

* Add json output.

* Add Benchmark Workflow.

* merge local-runtime into "agent-v2"

* Makes Prepared States to be Rc'ed.

* Move example.

* Update example.

* Implement prepared state for memorised tasks.

* Make prepared states work on none runtime as well.

* Finished prepared output.

* Remove local set from tests.

* Fix Workflow syntax.

* Exclude benchmark from doc tests.

* Tidy up the code.

* Remove HashSet.

* Fix rustfmt.

* Some optimisation.

* Use postcard.

* Remove allocations.

* Weak Ref.

* Adjust feature flags.

* Adds a pinned channel implementation.

* Make Send bound explicit.

* Migrate to pinned channel.

* Implement on immutable reference.

* Rename agent channel method.

* Fix Sink close.

* Fix closing.

* Remove old platform.

* Migrate to new macro.

* Port Oneshot Agent.

* Migrate reactor to gloo-worker.

* Implement ScopeExt for Reactor.

* Remove unneeded checks.

* Update example note.

* Fix doc tests.

* Add an example for reactor agent.

* Rename Prime to PrimeReactor.

* Update Crate Information.

* Remove unused dependencies.

* Remove unused dependencies.

* Update documentation.

* Rename Bridge to Runner.

* Update documentation.

* Update documentation.

* Update State name.

* Merge outputs state for subscriptions.

* Update documentation.

* Fix doc link.

* Make code link code link.

* Make CODEC -> C.

* Update Debug Implementation to type_name.

* Fix readme.
2023-09-18 17:30:02 +09:00

483 B

Web Worker Prime

Demo

Calculate primes until stop button is pressed, without blocking the main thread.

Concepts

The example illustrates how to use reactor agents to offload CPU bound tasks to a worker thread in a Yew application.

Running

Run this application with the trunk development server:

trunk serve --open