【Rust日报】 2020-02-17 WASM向量图形 --wasm_svg_graphics 0.3.0

2020-02-21 17:09:28 浏览数 (1)

WASM向量图形 --wasm_svg_graphics 0.3.0

一个用于通过WASM渲染SVG图形的Rust库

它提供了快速有效的方法,可以使用WebAssembly与SVG进行交互。它能够:

  • 声明形状和样式以用于这些形状
  • 使用SVG 标签将这些形状渲染到DOM
  • 自动检测两个形状是否相同,因此只有一个SVG 将添加到DOM中
  • 声明已命名的项目/容器,以便以后进行例如隐藏,重新显示和重新放置之类的调整。
声明

开发团队已测试版本0.3.0的稳定性,并且可以在开发中使用。

此软件包仍在开发中,但大多数对1.0.0的API调用已完成。如果发现任何错误,请在GitHub上提交问题或诉求。

原文请查阅crates.io网站

使用wasm-bindgen-test测试Rust WebGL渲染器

一周前,作者对改进客户端代码体系结构的所有细节感到有些不知所措,但是从那时起,作者就为所有主要部分布置了数据结构和测试,并对所有组件的安装方式有了很好的认识一起。

因此,现在正在努力的只是编写和实施更多测试,直到所有内容都准备就绪。

在进行这种重构方面,似乎需要多花1~2周的时间,然后我们才能重新投入实际游戏的开发工作中。

  • 地形加载和渲染
  • 输入事件处理器系统
  • 用户界面元素
  • WebGL渲染器

详情前往作者博客查看。

Krabs:可以引导vmlinux的x86引导程序

Krabs是用Rust编写的实验性x86 / x86_64引导程序。

Krabs可以引导用bzip2压缩的ELF格式的内核、解压缩bz2映像并重新定位ELF映像,然后引导内核。

一些源代码使用libbzip2 C库进行解压缩,但其余的完全使用Rust。

Krabs正在致力于在32位/ 64位PC上引导以ELF格式格式化的vmlinux和其他内核,并且正在开发中。

Krabs还旨在仅支持最小的Linux启动协议。这使您可以指定内核命令行并在启动时操纵内核的行为。另一个功能是,为了节省空间,ELF格式内核在使用前先使用bzip2进行了压缩,并使用libbzip2库进行解压缩。

下面是一个例子:

代码语言:javascript复制
$ ./tools/build.sh -k vmlinux -i initramfs.cpio.gz -c "clocksource=tsc" disk.img

工程详情与构建方法前往GitHub查看。

cow-utils:用于Rust写入时复制字符串实用程序

一些str方法执行的转换具有破坏性,因此String即使不需要修改,它们也可以分配,复制并返回新的方法 中。

此软件包提供了一种具有辅助特性的CowUtils,其中包含此类方法的直接插入变体,它们的行为方式相同,但是在不需要修改时避免额外的副本和分配。

目前,它仅针对&str和返回 实现std::borrow::Cow<str>,但将来可能会扩展到可能进行更有效处理的其他类型(例如,对可变字符串进行就地修改)。

性能

这个箱子的主要动机是在没有找到匹配的情况下执行零分配替换的功能,因此现在仅显示.replacevs的结果.cow_replace

实际结果将根据输入而有所不同,但这是一个品尝者,基于"a".repeat(40)输入和各种模式(不匹配,匹配和替换的所有内容,从开始到删除的所有匹配项):

参数

.replace(ns)

.cow_replace(ns)

区别 (%)

("a", " ")

408.59

290.27

-29

(“ b”,“ c”)

98.78

54.00

-45

(“ a”,“ b”)

985.99

1,000.70

1

关于项目详情访问GitHub。


From 日报小组 @Lance

0 人点赞