[Draft] Idea: add tokio-workers compatibility shim crate #901
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
tokio-workerscrate providing tokio-compatible APIs that work on Cloudflare Workersuse tokio::*withuse tokio_workers::*to run tokio-based code on Workersexamples/tokio-workers-demodemonstrating all supported APIsSupported APIs
spawn,spawn_localwasm_bindgen_futures::spawn_localwith customJoinHandletime::sleepsetTimeouttime::timeoutsync::*join!,try_join!,select!spawn_blockingspawn-blocking-panicorspawn-blocking-syncExample Usage
Testing
All 18 unit tests pass, plus the demo example has 7 endpoints that all work correctly:
/spawn- Concurrent task spawning (~11ms for 3x10ms tasks)/sleep- Timer works as expected/timeout- Fast ops succeed, slow ops timeout/channels- mpsc channels work with multiple producers/mutex- Async mutex correctly synchronizes/concurrent-join!runs operations in parallel (~30ms not 90ms)/spawn-blocking- Sync computation works