< 返回版块

rust 日报 babpstep 发表于 2023-08-22 21:08

Tags:rust,日报,wasm

使用沙盒化、确定性、可重现、高效的 WASM 编译过程宏

该页面是关于 Rust 语言内部讨论的一个预RFC(请求评论)提议,主题是“使用沙盒化、确定性、可重现、高效的 WASM 编译过程宏”。

当前的过程宏(proc-macro)在 Rust 中是通过动态链接库(DLL)实现的,这种方法存在一些问题,如安全性、跨平台兼容性等。

因此,作者 dtolnay 提议使用 WebAssembly(WASM)来编译和执行过程宏,可以带来以下几点优势:

  • 安全性:使用 WASM 可以避免不安全的代码执行。
  • 跨平台:WASM 是跨平台的,因此可以确保过程宏在不同的平台上都能正常工作。
  • 高效性:WASM 可以提供更快的编译速度。

作者详细描述了如何实现这个提议,包括如何编译 WASM、如何与 Rust 的其他部分集成等,该 Pre-RFC 下还有很多社区成员对该提议的反馈和讨论,感兴趣的可以进一步阅读。

Pre-RFC 讨论链接

那年我15岁,用 Rust 编写了人生第一个项目——QR码生成器

作者 Timur Borisov 分享了他从零开始学习 Rust 的经历。在 Pionir Free School 的一位导师的指导下,他选择创建一个 QR 码编码器作为他的第一个项目。这所学校强调解决社区和社会问题的项目。Timur 选择 Rust 的动机是这门语言广阔的前景和实用的特性,同时,他想探索比 Python 更复杂的东西。文章深入探讨了创建 QR 码生成器的技术方面,包括生成 QR 码的步骤、生成器的架构以及 Reed-Solomon 纠错算法。通过这个项目,Timur 对编程和 Rust 有了更深入的了解。

通过 Timur 的分享,你将对下面几点疑问有更好的认识:

  • 选择 Rust: 对于初学者来说,学习 Rust 相对于更受欢迎的语言如 Python 有什么潜在的优势?
  • QR 码的实用性: QR 码的纠错能力,如 Reed-Solomon 算法,如何增强其在各种应用中的可靠性和多功能性?

原文链接 github 仓库链接

Inkjet - 一个内置了众多功能的语法高亮库

作者 分享了一个名为 Inkjet 的新的语法高亮库。原因是他发现syntect 并不适合他的项目,因此他开始寻找替代品。他找到了 tree-sitter-highlight,这是一个有前景的库,但作者希望支持尽可能多的语言,而不依赖于每种语言的单独crate。因此,Inkjet应运而生。

主要特点:

  • 内置了大约60种语言的语法,总计约1100万行C代码,并链接到可执行文件中,无需在运行时加载任何内容。
  • 可插拔的格式化程序,包括一个基本的 HTML 格式化程序。
  • 可以从一个像 rs 这样的标记中查找语言。
  • 可以高亮到一个 String 或 std::io::Writer。
  • 仍然是一个正在进行的工作(WIP),作者希望至少添加更多的语言,并看看是否可以加快构建时间,但在他的原始项目中它工作得很好。

github 仓库链接

-- From 日报小组 RustPlumber

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页