使用Rust构建类似于Wireshark过滤器那样的执行引擎
Cloudflare公司开源的用于解析Wireshark过滤器语法,并将它们编译器为可执行的IR。该库用于该公司提供的防火墙服务规则解析,所以使用Wireshark的过滤器语法作为DSL。
解析语法一般有三种方式:
- 使用状态机、正则等按字符进行解析
- 使用解析器组合器,比如nom或combine这种工具
- 完全自动化的生成器,可以根据提供的语法自动生成一个解析器,比如pest
但是该库并没有用nom或pest,而是选了第一种解析方式。并且在文章里给出了一些提升解析器性能的经验:
- 他们认为Rust标准库提供的字符串API完全够用。
- 使用IndexMap替换了HashMap来进一步提升了两倍性能。
- 使用trait对象动态分发和闭包来避免实现JIT而带来的一些问题。动态分发的执行效率出乎他们的意料。
- 选择使用Rust语言实现,对于支持WASM提供了巨大的方便。
该库已经用于Cloudflare公司的生产项目。
说明: Cloudflare是一家提供CDN、DNS、DDoS 防护和安全服务的公司。该公司曾经声称自己抵挡“在一秒钟内的流量接近于谷歌(Google)的全球搜索引擎在一个小时内的流量”的攻击。
集成React + Rust + WASM指南
本教程教你如何用Rust提供的wasm工具链开发React App。
「招聘」「新加坡」使用Rust构建下一代支付系统
新加坡TenX公司,成长型创业公司,产品是基于云的支付平台,并且支持数字货币。其他消息不详。
Rust实现一个Merkle(默克尔)树状数组
ansible-vault-rs: Ansible Vault解密库
使用Bulletproofs进行零知识证明
该文展示了如何使用bulletproofs进行零知识证明
- [Read More](https://medium.com/coinmonks/
zero-knowledge-proofs-using-bulletproofs-4a8e2579fc82) - bulletproofs
日报订阅地址: