「声明」
今天一天遇到两起评论,一条是带着阴阳怪气评论每周精选,一条是直接说我「标题党」,这让我有点不舒服。当然,我愿意相信对方也许并无恶意,只是用词不当。不过我也觉得有必要再次说明几点:
- 「每日新闻」只是满足我自己每天的阅读需求,顺便总结出来分享给大家。
- 每日新闻里的内容,不要当作是翻译来看待。并非翻译,只是我看完以后做了梳理和总结。
- 人非圣贤,孰能无错? 所以新闻的内容有错是很正常的。看见我对内容有错误的理解,欢迎指出问题,我很乐意改正,因为「每日新闻」的存在,也有一部分原因是因为我也要学习。
- 你可以觉得我的水平很水,发的内容不值得你看,可以选择不交流不关注。但如果要评论或交流,还请携带善意。
- 并非我敏感,只是觉得给大家说清楚比较好。
- 有人可能认为我是宣扬Rust调门很高。但其实,我每日新闻基本都在Rust群发放,而且对原文也基本没有故意的篡改或添加私货(要加私货也是对原文中涉及的相关内容进行补充)。 不喜勿看。
特此说明
官方对crates.io 事件做出了回应
针对crates.io上面恶意发布crate的事情,官方将要处理了。
广告黑洞Pi-hole 开源了Rust实现的Restful API
基于Rocket实现
pi-hole可以阻止超过100,000个广告服务域
「Rust练手小项目」
- 统计git commit中的「咒骂」词语: git-anger-management
- Rust语法糖集合,该库提供了作者编写的一些语法扩展,方便使用的宏: sugar-rs
「Job」医疗初创项目招聘Rust工程师 「旧金山/全职/非远程/薪酬/股权」
致力于改善医疗软件,拯救医生。 技术栈:Rust/node/react
也包括特定领域机器学习和细粒度的应用安全挑战
一个经过审查的torrents种子服务
由torrents.csv
文件组成,并使用了ripgrep和acitx-web
Grapl:用于DFIR的图形化分析平台
DFIR,是指Detection, Forensics, and Incident Response,检测、取证和应急响应,有助于网络安全分析。
使用WebAssembly加速Markdown渲染
SpiderOak公司的博文,SpiderOak是一个云端备份工具。该公司出了一个产品叫 Semaphor,它是可协作的加密群组IM软件。起因是因为SpiderOak团队需要一个安全的群组消息传递和文件共享解决方案,而没有电子邮件或现成协作工具带来的风险。 使用私有区块链加密开发。
在Semaphor中发送的每条消息,都是Markdown文档,所以渲染性能对它们来说很重要。所以他们一直在寻找加速渲染性能的方法。最终他们想到一个方案,就是将WebAssembly集成到React组件中,取代react函数,所以他们提出了react-wasm-bridge 实验组件。它将props传递给Rust WebAssembly模块,并提供构建React渲染树的接口。
Rust是个很自然的选择,因为Rust工具链很完善,比如有wasm-bindgen这样的工具。他们对Markdown渲染器的要求是:
- 安全,解析用户的输入需要安全
- 快速, 呈现消息展示是Semaphor中最频繁的操作
Rust+wasm方案改进后
安全性:
当前他们的Markdown渲染器用的是markdown-it,它与react一起工作并不安全,因为包含有HTML字符串,对目前的解决方案并不满意。因此新的解决方案必须没有HTML字符串,而是直接创建元素。因此通过Rust来构建React 元素树,并且wasm环境还是一个天然的沙箱,对于攻击者来说并没有那么有用。
性能:
刚开始的实现方案性能并没有多少提升,后来针对它们的产品场景,将React中循环渲染构建dom的逻辑,转移到了Rust中,从而提升了性能。因为对于它们的产品来说,只需要渲染一次即可,im中的消息是不可变的,所以不需要重新渲染。
最终的测试结果:
BROWSER MARKDOWN-IT WASM
—————————————————------------
Firefox 162ms 175ms
Chrome 197ms 84ms
评论区
写评论还没有评论