#tokio #tokio-util #timer #browser #utilities #delay-queue

wasmtimer

WASM 目标上的 std::time、tokio::time 和 tokio_util::time 时间工具

3 个版本 (破坏性)

0.2.0 2023 年 3 月 11 日
0.1.0 2023 年 3 月 7 日
0.0.1 2023 年 2 月 15 日

#159 in WebAssembly

Download history 6916/week @ 2024-03-14 8403/week @ 2024-03-21 7148/week @ 2024-03-28 7826/week @ 2024-04-04 6398/week @ 2024-04-11 4154/week @ 2024-04-18 3756/week @ 2024-04-25 5216/week @ 2024-05-02 4548/week @ 2024-05-09 5516/week @ 2024-05-16 4424/week @ 2024-05-23 7100/week @ 2024-05-30 4914/week @ 2024-06-06 5697/week @ 2024-06-13 4386/week @ 2024-06-20 2868/week @ 2024-06-27

19,018 每月下载量
用于 82 个 Crates (20 直接)

MIT 许可证

110KB
2.5K SLoC

wasmtimer-rs

WASM 目标上基于 time 功能的实现,包括 std::timetokio::timetokio_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::timewasmtimer

  • wasmtimer 只在 WASM 浏览器目标上运行,并且不将任何 tokio 功能作为依赖项。
  • 此计时器 crate 不支持类似于 tokio crate 中的 自动前进。因为我们无法在浏览器范围内跟踪后台任务(Promise)。如果我们不考虑后台任务(Promise)而实现此类功能,则此实现将与 tokio 的原始实现不匹配。

功能

  • Serde 支持(serde 功能标志)
  • Worker 和 NodeJS 支持
  • 测试工具

依赖项

~1–7.5MB
~37K SLoC