【Rust日报】 2019-08-13

in rust •  5 years ago 

哪些软件应用值得用Rust重写?

#rust

Rust安全、高性能等优点吸引到很多优秀的开发者和公司将原有项目的部分或全部用它重写,下面是知乎上关于该问题的回答,如果你有重写的经验和想法,欢迎分享。

CPU+内存密集型的应用,比如数据压缩领域的gzip、bzip2、xz 等等。我已经把自己的数据压缩应用orz用rust重写了(https://github.com/richox/orz),整体上来看,当前的rust性能已经完全匹敌c/c++,而且开发过程释放了大量脑力,涉及到对内存精细操作的地方不再需要像c/c++那样心惊胆战,也不需要处理c++的长篇编译错误,编译通过基本上就不会再出异常了。这个项目可以做为rust性能的一个实战验证,目前压缩速度快于gzip、压缩率高于bzip2,在整个压缩领域已经处于pareto frontier 的位置了。
——知乎作者 鱼你太美

类似OpenSSL这样的基础软件,几乎已经成了事实上的标准,大家都在用都依赖,堆积了差不多20多年的C代码,据说里面各种古怪的旧代码,奇怪的东西。其实可以考虑重写了的。不过假如重写了之后,原来的攒了20年的OpenSSL的兼容性应该是会丢了,也就不是OpenSSL了。其实以Rust写的目标是替换或者兼容OpenSSL的项目是有的,而且在慢慢的发展。这种东西不是一天两天能完成替换或者取代的。
——知乎作者 杨小小小小小明

推荐阅读知乎上另一个讨论【如何看待Rust应用前景?】

Read More

starship 一个小而美的shell提示工具

#crate

starship 是一个非常小、极快shell的提示,可以定制,并且支持任何shell。

(html comment removed: )

Read More

wasm-astar rust+wasm实现的迷宫

#rustwasm

日报曾经发过这个项目,后来发现作者开发过程中的一些疑问都得到了回答,推荐给正在用rust开发wasm项目的小伙伴看看。

Read More

blurHash rust+wasm实现的blurhash算法

#rustwasm

blurhash可以将编码后的图像数据通过canvasContext2D.putImageData绘制在canvas画布上。目前该项目还未完成,希望以后能加上benchmark。

import * as blurhash from "blurhash-wasm";

// Returned as Uint8Array | undefined
// You can use this to construct canvas-compatible resources
const pixels = blurhash.decode("LKO2?U%2Tw=w]~RBVZRi};RPxuwH", WIDTH, HEIGHT);
if (pixels) {
    // Set the pixels to the canvas
    const asClamped = new Uint8ClampedArray(pixels);
    const imageData = new ImageData(asClamped, WIDTH, HEIGHT);
    const ctx = canvasEl.getContext('2d');
    ctx.putImageData(imageData, 0, 0);   
}

Read More

wapm —— WebAssembly 包管理工具

#wasm

wasm 是一个WebAssembly 包管理工具,可以安装、管理、发布WebAssembly项目。

Read More


From 日报小组 格朗

日报订阅地址:

独立日报订阅地址:

社区学习交流平台订阅:

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!