106 releases
| 0.4.72 | May 22, 2026 |
|---|---|
| 0.4.70 | Apr 28, 2026 |
| 0.4.67 | Mar 31, 2026 |
| 0.4.56 | Nov 28, 2025 |
| 0.3.5 | Nov 12, 2018 |
#6 in #promise
21,596,946 downloads per month
Used in 47,047 crates
(1,877 directly)
725KB
9K
SLoC
wasm-bindgen-futures
This crate bridges the gap between Rust Futures and JavaScript Promises.
As of this version the implementation lives in js-sys under the futures
feature. Depending on this crate automatically activates that feature, which
gives js_sys::Promise a first-class IntoFuture implementation — meaning
you can .await any Promise directly:
use js_sys::Promise;
use wasm_bindgen::prelude::*;
async fn example(promise: Promise) -> Result<JsValue, JsValue> {
promise.await
}
All public items from the previous API are re-exported unchanged for backwards compatibility:
JsFuture— convert aPromiseinto a namedFuturetypespawn_local— run aFuture<Output = ()>on the JS microtask queuefuture_to_promise— convert aFutureinto a JSPromisefuture_to_promise_typed— typed variant offuture_to_promise
Under the feature flag futures-core-03-stream there is support for
AsyncIterator to Stream conversion via JsStream.
See the API documentation for more info.
Dependencies
~0.4–1MB
~20K SLoC