#canvas #browser #render #websocket

remote-canvas

将基于浏览器的 canvas 实现适配到 Rust 应用程序中的工具

5 个稳定版本

1.0.4 2020年4月10日
1.0.3 2020年4月6日
1.0.2 2020年3月31日
1.0.1 2020年3月28日
1.0.0 2020年3月26日

#776图形 API

每月 26 次下载

GPL-3.0 或更新版本

64KB
2K SLoC

Rust 1.5K SLoC JavaScript 356 SLoC // 0.1% comments

远程画布

将基于浏览器的 canvas 实现在 Rust 应用程序中进行缩放适配的工具。

目标

  • 在 Rust 应用程序中提供一种可扩展的方式来使用基于浏览器的 Canvas 实现。
  • 同时利用多个浏览器
  • 提供与 2D 上下文渲染几乎相同的 API。

未来目标

  • 提供与 WebGL 上下文渲染几乎相同的 API。
  • 集成本地 Chrome 安装或 Docker 集群中的 Chrome 容器,以按需提供连接的浏览器。

限制

  • 浏览器可能会随时消失,这将销毁所有附加的 Canvas。重启上下文取决于最终用户。
    • 这是故意的,因为虽然通过事务性地跟踪上下文来重启相对容易,但它可能存在显著的性能问题。
  • 除非负载足够高,否则只会使用一个浏览器。
    • 这是由于使用了 async_std 的 MPMC channel 而不是适当的负载平衡解决方案。
    • 长期解决方案可能是一个负载平衡作业。
  • 没有浏览器身份验证

依赖项

~29–42MB
~764K SLoC