以Rust编程语言编写的视频和图像编码器/解码器因其内存安全性保证而常被视为编程语言用于更好地防止畸形/恶意内容(尤其是Web浏览器中的畸形/恶意内容)的引人注目的领域之一。事实证明,基于Rust的PNG图像解码器不仅比基于C的解码器更安全,而且Rust解决方案的性能甚至更快。

image-png和zune-pngRust项目的SergeyDavidoff分享说,该团队在Reddit上发布了一些令人鼓舞的细节,他们自己发现内存安全的RustPNG解码器的性能远远超过普通的CPNG库。

开发人员将他们的发现发布在Reddit上,并发表了评论:

"PNG的内存安全实现(png、zune-png、wuffs)现在在解码图像时的性能大大优于内存不安全实现(libpng、spng、stb_image)。"

Rustpngcrate在我们的基准测试中名列前茅,在x86平台上比libpng提高了1.8倍,在ARM平台上提高了1.5倍。在Reddit上发布的基准测试中,他们使用的是AMDZen4系统。

除了比基于C的PNG库更快更安全之外,他们还认为这些基于Rust的解决方案可以投入生产:

"这可以投入生产吗?

是的!

所有三个内存安全实现都支持APNG、读/写辅助块,以及现代PNG库所应具备的其他功能。

png和zune-png已在广泛的真实图像上进行了测试,仅在测试语料库中就有超过10万张图像。而png被图像箱的每个用户所使用,因此它已经过了彻底的实战测试。

WUFFSPNGv0.4在我们的测试中似乎无法处理带alpha的灰度图像。我们还没有深入研究这个问题,这可能是我们的配置问题,而不是错误。不过,我们无法像Rust库那样为WUFFS作担保。"

在未来几年中,基于Rust的PNG实现以及其他基于Rust的图像/视频编码器和解码器的采用情况将会非常有趣。