mirror of
https://github.com/leptos-rs/leptos
synced 2024-11-12 23:57:09 +00:00
27 lines
917 B
Markdown
27 lines
917 B
Markdown
|
This crate makes it easier to write asynchronous code that is executor-agnostic, by providing a
|
||
|
utility that can be used to spawn tasks in a variety of executors.
|
||
|
|
||
|
It only supports single executor per program, but that executor can be set at runtime, anywhere
|
||
|
in your crate (or an application that depends on it).
|
||
|
|
||
|
This can be extended to support any executor or runtime that supports spawning [`Future`]s.
|
||
|
|
||
|
This is a least common denominator implementation in many ways. Limitations include:
|
||
|
|
||
|
- setting an executor is a one-time, global action
|
||
|
- no "join handle" or other result is returned from the spawn
|
||
|
- the `Future` must output `()`
|
||
|
|
||
|
```rust
|
||
|
use any_spawner::Executor;
|
||
|
|
||
|
Executor::init_futures_executor()
|
||
|
.expect("executor should only be initialized once");
|
||
|
|
||
|
// spawn a thread-safe Future
|
||
|
Executor::spawn(async { /* ... */ });
|
||
|
|
||
|
// spawn a Future that is !Send
|
||
|
Executor::spawn_local(async { /* ... */ });
|
||
|
```
|