3 个版本 (破坏性)
0.2.0 | 2023 年 3 月 11 日 |
---|---|
0.1.0 | 2023 年 3 月 7 日 |
0.0.1 | 2023 年 2 月 15 日 |
#159 in WebAssembly
19,018 每月下载量
用于 82 个 Crates (20 直接)
110KB
2.5K SLoC
wasmtimer-rs
WASM 目标上基于 time
功能的实现,包括 std::time
、tokio::time
、tokio_util::time
。此 crate 尝试尽可能复制上述 API。用户只需通过使用 cfg
宏更改他们的 use
脚本。
#[cfg(not(target_arch="wasm"))]
use tokio::time::*;
#[cfg(target_arch="wasm")]
use wasmtimer::tokio::*;
有关更多详细信息,请查看 API 文档。
故事
核心思想和核心模块位于 src/timer
文件夹中,是从 此处 的 crate 复制的。由于缺乏可维护性,现在已弃用此 crate。我已硬分叉它,添加了一些附加功能,并发布了用于 此 PR 的版本。
tokio::time
与 wasmtimer
wasmtimer
只在 WASM 浏览器目标上运行,并且不将任何tokio
功能作为依赖项。- 此计时器 crate 不支持类似于 tokio crate 中的 自动前进。因为我们无法在浏览器范围内跟踪后台任务(
Promise
)。如果我们不考虑后台任务(Promise
)而实现此类功能,则此实现将与 tokio 的原始实现不匹配。
功能
- Serde 支持(
serde
功能标志) - Worker 和 NodeJS 支持
- 测试工具
依赖项
~1–7.5MB
~37K SLoC