Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 博客应用的体验报告

目前的 Rust 生态中,WebAssembly 应用构建一直是官方推广的重点,前景十分广阔。最近几天,笔者使用 Rust WebAssembly 框架 yew 构建了一个基础的博客应用。在符合团队合作开发的模式下,大约进行了 50% 左右的优化,以及 rustwasm 团队 和 yew 官方推荐的极致压缩(包括 panic 剔除)。本文,即是对此进行一个简略的初始体验报告,后续或许有更详细的应用体验总结。

2021-08-07 13:12:34+08:00
WebAssembly

Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 博客应用的体

2021-08-07 13:12:34+08:00

目前的 Rust 生态中,WebAssembly 应用构建一直是官方推广的重点,前景十分广阔。最近几

Continue reading
Rust

Rust 官方周报 399 期(2021-07-14)

2021-07-15 14:19:56+08:00

Rust 官方周报 399 期,关于 WebAssembly、游戏开发方面的文章较为侧重。并且,使用

Continue reading
budshome (blog: 芽之家) shared the aphorism --
不崇拜任何一个伟人,不蔑视任何一位凡人! -- 佚名

Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 博客应用的体验报告

目前的 Rust 生态中,WebAssembly 应用构建一直是官方推广的重点,前景十分广阔。最近几天,笔者使用 Rust WebAssembly 框架 yew 构建了一个基础的博客应用。在符合团队合作开发的模式下,大约进行了 50% 左右的优化,以及 rustwasm 团队 和 yew 官方推荐的极致压缩(包括 panic 剔除)。本文,即是对此进行一个简略的初始体验报告,后续或许有更详细的应用体验总结。

Continue reading

Rust 官方周报 399 期(2021-07-14)

Rust 官方周报 399 期,关于 WebAssembly、游戏开发方面的文章较为侧重。并且,使用 rg3d 游戏引擎的教程附有源码,其开发的角色扮演类游戏很精致、有趣。

Continue reading

Rust 和 Wasm 的融合,使用 yew 构建 web 前端(5)- 构建 HTTP 请求、与外部服务器通信的两种方法

《Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端》系列文章第五部分:在 yew 开发的 wasm 前端应用中,与外部服务器进行数据交互时,直接使用 web-sys 库,比较方便灵活,并且较易拓展,已经可以满足开发。但在 yew 中,还有更易用的封装 FetchService,FetchService 封装了 web-sys 和 stdweb 两个库。对于请求的构建、响应的结果,也都做了一致封装,使用起来更为精简。如果你的 yew 项目中,除了 web-sys 之外,也希望使用 stdweb,那么 FetchService 则更为适合。

Continue reading

Rust 官方周报 398 期(2021-07-07)

Rust 官方周报 398 期,仍然是关于 WebAssembly 方面的文章较为侧重。

Continue reading

Rust 官方周报 397 期(2021-06-30)

Rust 官方周报 397 期,关于 WebAssembly 的文章较有新意:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘、Rust 开发者引语等。

Continue reading

Rust 官方周报 396 期(2021-06-23)

Rust 官方周报 396 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘、Rust 开发者引语。本期文章中,Rust 在 WebAssembly 开发方面文章、工具较多,游戏开发等方面也有所侧重。

Continue reading

Rust 官方周报 395 期(2021-06-16)

Rust 官方周报 395 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘、Rust 开发者引语。本期文章中,Rust 做 WebAssembly、嵌入式、移动开发(Flutter、Fuchsia、iOS)等方面有所侧重。另外,还包含开源与心理健康方面的内容。

Continue reading

Rust 1.53.0 明日发布,关键新特性一瞥

Rust 1.53.0 稳定版已经为发布做好了准备,预定的发布日程为本周四(2021 年 6 月 17 日)。关键新特性包括:使用 unicode 字符作为标识符、`| (OR)` 现在其可以用在模式之内,增加 `:pat_param` 等。

Continue reading

使用 tide、handlebars、rhai、graphql 开发 Rust web 前端(3)- rhai 脚本、静态/资源文件、环境变量等

《使用 tide、handlebars、rhai、graphql 开发 Rust web 前端》第三部分:在 handlebars 模板中,使用 rhai 嵌入式脚本语言,作为脚本助手;另外,还有静态/资源文件、环境变量等方面的使用阐述。

Continue reading

使用 tide、handlebars、rhai、graphql 开发 Rust web 前端(2)- 获取并解析 GraphQL 数据

《使用 tide、handlebars、rhai、graphql 开发 Rust web 前端》第二部分:使用 surf、graphql_client 发起 GraphQL 请求,并解析 GraphQL 响应应答数据,渲染到 handlebars 模板中。

Continue reading

使用 tide、handlebars、rhai、graphql 开发 Rust web 前端(1)- crate 选择及环境搭建

《使用 tide、handlebars、rhai、graphql 开发 Rust web 前端》第一部分:HTTP 服务器端框架、模板引擎库,GraphQL 客户端等 crate 的选择,以及开发环境的搭建和测试。

Continue reading

Rust 官方周报 394 期(2021-06-09)

Rust 官方周报 394 期:Rust 语言更新、官方资讯、项目/工具更新、观测/思考、实际演练、周最佳 crate、近期活动、Rust 工作招聘,以及开发者引语等。第 394 期的技术文章中,wasm 方面的文章增长明显,WebAssembly 开发热度大增。另外,区块链、游戏也有发力。

Continue reading

Rust web 前端库/框架评测,以及和 js 前端库/框架的比较

Rust web 前端库/框架在所有前端库/框架的位置、Rust web 前端库/框架评测概览、yew 框架和其它流行前端框架的评测比较。

Continue reading

Rust 和 Wasm 的融合,使用 yew 构建 web 前端(4)- 获取 GraphQL 数据并解析

《Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端》系列文章第四部分:在 yew 开发的 wasm 前端应用中,与后端进行数据交互,获取 GraphQL 数据并解析。

Continue reading

Rust 和 Wasm 的融合,使用 yew 构建 web 前端(3)- 资源文件及小重构

《Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端》系列文章第三部分:引入 css 样式表、图像等资源文件到 trunk 构建路径;以及精简 html! 宏中代码,提取为函数的代码重构等。

Continue reading

Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端(2)- 组件和路由

《Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端》系列文章第二部分:实现目标、crate 引入、IDE 配置、yew 组件开发、yew 路由定义,以及应用入口组件等。

Continue reading

Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端(1)- 起步及 crate 选择

《Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端》系列文章第一部分:起步及 crate 选择。介绍 Rust WebAssmbly 框架库的选择、工程的创建、yew 开发环境配置,以及编译和运行等。

Continue reading

Rust 官方周报 393 期(2021-06-02)

Rust 官方周报 393 期:Rust 语言更新、官方资讯、项目/工具更新、观测/思考、实际演练、周最佳 crate、近期活动、Rust 工作招聘,以及开发者引语等。第 393 期的技术文章中,wasm 方面的文章增长明显,WebAssembly 开发热度大增。

Continue reading

Rust 官方周报 392 期(2021-05-26)

Rust 官方周报 392 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘、Rust 开发者引语,尤其是本期具有论文和研究探讨等。

Continue reading

Rust 中,对网址进行异步快照,并添加水印效果的实践

Rust 生态中,关于通过 url 网址,对站点进行拍照,生成网页快照;以及在网页快照上生成时间戳,或者添加水印的实践。

Continue reading

Rust 官方周报 391 期(2021-05-19)

Rust 官方周报 391 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘、Rust 开发者引语,尤其是本期具有论文和研究探讨等。第 391 期的技术文章中,中文、德文、西班牙文,以及葡萄牙文等多语言文章都有增加。Rust 呈现出在不同国家,不同语种,资料迅速丰富的趋势。

Continue reading

Rust,风雨六载,砥砺奋进

在 2015 年发布版本 1.0 以来,2021 年 5 月 15 日,是 Rust 的 6 岁生日。2015 年以来,世界发生了很多变化,Rust 同样如此。本文从 2020 年 Rust 改进和补录,生产环境中的 Rust 使用状况,未来的工作计划等方面,综合回顾了 Rust 的 6 年历程。同时,也对 Rust 2021 版次做了展望。

Continue reading

为什么我们应当将 Rust 用于嵌入式开发?

因 Rust 语言具有较少的内存管理问题、高性能、跨平台支持、跨平台支持,以及丰富的生态系统,在嵌入式开发方面,Rust 非常具有优势。程序员进行低层次控制时,语言自身和编译器确保了内存安全。此外,Rust 的可移植性和互操作性,更符合嵌入式系统开发的重要需求,使得 Rust 语言更值得嵌入式系统开发者选择。

Continue reading

Rust 官方周报 390 期(2021-05-12)

Rust 官方周报 390 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘、Rust 开发者引语,尤其是本期具有论文和研究探讨等。第 390 期的技术文章中,技术演练丰富。并且,本期在 Rust 游戏开发和区块链上,进行了发力。

Continue reading

Rust + Android 的集成开发设计

Rust 和 Android 集成开发的官方设计,包括:无需嵌套的(nested)构建系统、用过程宏(proc_macro)而无需构建脚本(build.rs)、以 crate 形式生成源码,以及动态链接 crate 等。

Continue reading

Rust 1.52.1 已正式发布,及其新特性详述

Rust 团队新发布的 Rust 1.52.1,解决了一个增量编译中的 bug,这个 bug 在 1.52.0 中,会导致一个编译器错误。建议所有用户升级!本篇文章的目的是: 解释错误的具体表征; 在高层次上,解释检查(check)的作用; 解释 Rust 1.52.0 中,检查的具体展现; 在你的项目上,如果出现不稳定(unstable)的编译器指纹,告诉你如何做; 关于此问题,描述 Rust 团队的解决计划。

Continue reading

让我们用 Rust 重写那些伟大的软件吧

20 世纪 20 年代,时代选择的语言可能是(也许已经是)Rust。这是一门罕见的,能让软件程序员和硬件程序员都满意的语言。目前,很多伟大的软件,都在用 Rust 进行重写。这些事情是潮流,并非 Rust 在炒作。

Continue reading

Rust 1.52.0 已正式发布,及其新特性详述

2021 年 5 月 6 日,Rust 发布团队官宣 Rust 发布 1.52.0 稳定版。其最重要的变化不是语法或标准库,而是对 Clippy 工具支持的增强。执行 cargo 时,用户将获得预期的行为,不再因为运行命令的顺序而受到影响。

Continue reading

Rust 官方周报 389 期(2021-05-05)

Rust 官方周报 389 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘、Rust 开发者引语,尤其是本期具有论文和研究探讨等。第 389 期的技术文章中,技术演练丰富;技术基础较多,适合新手学习,熟练者温故。另外,本周最佳 crate 对可以给开发中的信息输出提供很大方便。

Continue reading

基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务(4) - 变更服务,以及小重构

基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建 Rust 异步 GraphQL 服务的变更服务教程,包括依赖项的更新和配置。以及 async-graphql 简单对象类型、复杂对象类型、输入对象类型的迭代和开发。新用户的插入,包括根据用户唯一性标志属性验证。

Continue reading

Rust 1.52.0 稳定版预发布测试中,关键新特性一瞥

2021 年 5 月 4 日,Rust 内部论坛,PRust 发布团队宣布:Rust 1.52.0 预发布版本已经为测试做好准备,预定的发布日程为 本周四(2021 年 5 月 6 日)。本文描述其安装方法,以及语法、编译、库、已稳定 APIs 等关键新特性。

Continue reading

Rust 生态中,最不知名的贡献者和轶事

Rust 语言和生态的成功,是许许多多的微小奇迹,汇聚而成的巨大奇迹。作者 Brian Anderson 回忆了 Rust 发布前的发展历程,致敬了使得 Rust 获得伟大成功,但个人却在 Rust 生态中不知名的 Dave Herman。他是 Mozilla 中代表 Rust 的最高层,对 Rust 的成功负有最大贡献的人之一,几乎完全没有得到承认,也没有试图要求过任何有关 Rust 的荣誉。

Continue reading

Rust 基金会迎来新的白金会员:Facebook

2021 年 4 月 29 日,Facebook宣布以白金会员(Platinum Member,最高级别)的身份加入 Rust 基金会,将会与其它基金会成员共同负责 Rust 开源生态,以及推动 Rust 社区的运作和发展。加入 Rust 基金会,加强了 Facebook 支持开源技术的力度,以及对开发者社区可持续发展的承诺。

Continue reading

Rustup 1.24.1 已官宣发布,及其新特性详述

2021 年 4 月 29 日,Rustup 工作组发布 Rustup 1.24.1:支持工具链定义文件 rust-toolchain.toml,更好地支持低内存(low-memory)系统,更好地支持 Windows 添加/删除程序,以及其它更新等。在 rustup 1.24.0 版本发布后不久,我们收到了一份回归报告。言其在升级到 rustup 1.24.0 之后,用户无法运行 rustfmt 和 cargo fmt。因此,我们将版本恢复为 1.23.1。1.24.0 和 1.24.1 之间,唯一实质性的变化是纠正此次回归。

Continue reading

Rust 官方周报 388 期(2021-04-28)

Rust 官方周报 388 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘、Rust 开发者引语,尤其是本期具有论文和研究探讨等。第 388 期的技术文章中,技术深入分析较多,适合精读类不少。另外,本周最佳 crate 对代码调试很有用。

Continue reading

Rust 官方周报 387 期(2021-04-21)

Rust 官方周报 387 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘,以及 Rust 开发者引语等。第 387 期的技术文章中,技术深入分析较多,适合精读类不少。

Continue reading

构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb(4)- 变更服务,以及第二次重构

基于 tide + async-graphql + mongodb 构建 Rust 异步 GraphQL 服务的变更服务教程,包括依赖项的更新和配置。以及 async-graphql 简单对象类型、复杂对象类型、输入对象类型的迭代和开发。新用户的插入,包括根据用户唯一性标志属性验证。

Continue reading

Rustup 1.24.0 已官宣发布,及其新特性详述

2021 年 4 月 27 日,Rustup 工作组发布 Rustup 1.24.0:支持工具链定义文件 rust-toolchain.toml,更好地支持低内存(low-memory)系统,更好地支持 Windows 添加/删除程序,以及其它更新等。但莫要急着升级,Rustup 1.24.0 版的 `rustfmt` 和 `cargo fmt` 有问题。

Continue reading

basedrop:Rust 生态中,适用于实时音频的垃圾收集器

在实时音频中,截止时间至关重要。您的代码仅有几毫秒的时间来填充一个缓冲区,其中的样本将被发送到 DAC。但是,这几毫秒,也可能要与许多其他音频处理程序共享。如果您的代码花费太长时间来生成这些样本,那么就没有第二次机会;音频根本不会被播放,用户会听到一个令人讨厌的小故障,或者被口吃的声音代替。 为了防止这种情况,实时音频代码必须避免执行任何操作,这些操作可能会在无限或不可预测的时间内阻塞音频线程。如何在受上述限制的情况下,以可管理和高效的方式完成这一任务?Basedrop 是我试图为这个问题提供的一个解决方案。

Continue reading

Rust 编译器团队对成员 Aaron Hill 的祝贺

Rust 编译器团队对成员 Aaron Hill 的祝贺,Aaron Hill 已成为 Rust 编译器团队的正式成员。Congrats to compiler team member Aaron Hill。

Continue reading

Jacob Hoffman-Andrews 加入 Rustdoc 团队

Jacob Hoffman-Andrews 加入 Rustdoc 团队,Jacob Hoffman-Andrews joins the Rustdoc team

Continue reading

为什么应将 Rust 引入机器人平台?以及机器人平台的 Rust 资源推荐

因 C++ 的特性,使得机器人平台面临着潜在的巨大危害。C++ 的测试、体系结构,以及内存管理,均存在使用依赖性上的不一致问题;然而,这些依赖关系可能会捕获和操纵基本的底层资源。这意味着在不经意间,就会非常容易地构建导致关键问题的 bug,并且你不会意识到……Rust 具有和 C++ 同等的“与金属融合(close to the metal)”的特性。这使得 Rust 成为一种高效、极其安全的语言。Rust 还允许底层访问,这非常适合资源约束和代码安全至关重要的机器人世界。使用 Rust 构建机器人平台的最大好处是内存安全和管理。在 Rust 中,内存管理的方法是使用堆栈跟踪程序,然后使用指针引用来指向包含较大数据结构的堆。对于机器人平台来说,Rust 是一个明智的选择,但是向用 Rust 编写的机器人平台过渡,则需要时间。

Continue reading

rust-lang.org、crates.io,以及 docs.rs 的管理,已由 Mozilla 转移到 Rust 基金会

2021 年 2 月 8 日,由 5 家公司:华为、亚马逊、谷歌、微软,以及 Mozilla 作为创始成员,成立了 Rust 基金会。Rust 基金会的部分任务既是管理和支持 Rust 开发者(Rustaceans)所依赖的服务,包括 rust-lang.org、crates.io,以及 docs.rs。以前,这些服务的管理和支持由 Mozilla 负责,Rust 基金会成立后,Rust 社区赋权 Rust 基金会代表其管理上述服务。

Continue reading

Rust 官方周报 386 期(2021-04-14)

Rust 官方周报 386 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘,以及 Rust 开发者引语等。第 386 期的技术文章中,用 Rust 开发游戏引擎实践不少;另外,对于开发工具和 IDE 方面,介绍也颇多。

Continue reading

Rust 编译器(Compiler)团队 4 月份计划 - Rust Compiler April Steering Cycle

Rust 编译器(Compiler)团队 4 月份计划,关于编译器方向周期(Steering Cycle)的会议安排。

Continue reading

基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务(3) - 重构

前 2 篇文章中,我们初始化搭建了工程结构,选择了必须的 crate,并成功构建了 GraphQL 查询服务:从 MySql 中获取了数据,并通过 GraphQL 查询,输出 json 数据。本篇文章,本应当进行 GraphQL 变更(mutation)服务的开发。但是,虽然代码成功运行,却存在一些问题,如:对于 MySql 数据库的连接信息,应当采取配置文件存储;通用公用的代码,应当组织和抽象;诸如此类以便于后续扩展,生产部署等问题。所以,本篇文章中我们暂不进行变更的开发,而是进行第一次简单的重构。以免后续代码扩大,重构工作量繁重。

Continue reading

头脑风暴进行中:Async Rust 的未来熠熠生辉

在倡议书《为 Async Rust 构建共享的愿景文档—— Rust 社区的讲“故事”,可获奖》之后,Async Rust 的愿景文档进程,已经进展到了头脑风暴阶段。这次头脑风暴会持续六周,直到四月底。前两周(直到 2021-04-02),只收集“现状”故事。之后,将收受“现状”和“光明未来”的故事,直到头脑风暴期结束。最后,为了结束头脑风暴阶段,将评选出“最幽默的故事”或“必须支持的贡献者”等奖项,以及获奖者。所以现在还可以提交“现状故事”。

Continue reading

基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务(2) - 查询服务

本文中,我们将开启基于 actix-web 和 async-graphql 构建异步 Rust GraphQL 服务的历程。本章主要是 GraphQL 查询服务,包括如下内容: 1、构建 GraphQL Schema; 2、整合 actix-web 和 async-graphql; 3、验证 query 服务; 4、连接 mysql; 5、提供 query 服务。

Continue reading

基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务 - 起步及 crate 选择

本系列博客中,我们基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务。 本文为起步教程,主要包括: 工程的创建、工具类 crate 安装、添加依赖 crate,以及依赖项支持特性(features)的设定。

Continue reading

Rust 2021 版本特性预览,以及工作计划

Rust 的下一代版本,Rust 2021,将定于今年(2021)晚些时候发布。包括:`prelude` 的变更、新的闭包捕获规则、统一 std 和 core 中的 panic,以及将一些 lint 从警告升级为错误。目标里程碑的时间表: 4 月 1 日:所有相关 RFC 合并,或处于良好状态(即,所有达成的重大决策和合并,将在接下来的几周内进行)。 5 月 1 日:Rust 2021 中包含的所有特性,将包含在 nightly 版本中。 6 月 1 日:所有 lints 将包含在 nightly 版本中。 9 月 1 日:Rust 2021 在 nightly 版本中稳定。 10 月 21 日:Rust 2021 版本稳定。

Continue reading

Rust 用在生产环境的 42 家公司

Rust 已经被广泛用于生产环境,从个人、小团队,到世界上最大和最具影响力的公司,都已经将 Rust 用于生产环境。每天服务数十亿笔交易,无论是可靠性、生产率、性能优势,或是安全性,Rust 都是当今的首选语言。

Continue reading

构建最精简的 Rust Docker 镜像

构建最精简的 Docker 映像,以用来部署 Rust,将会带来很多益处:不仅有利于安全(减少攻击面),而且还可以缩短部署时间、降低成本(减少带宽和存储),并降低依赖项冲突的风险。

Continue reading

Rust 官方周报 385 期(2021-04-07)

Rust 官方周报 385期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘,以及 Rust 开发者引语等。第 385 期的技术文章偏重于实践,以及开发协同。

Continue reading

使用 Rust 做异步数据采集的实践

使用 `Rust` 生态中的数据采集相关 `crate` 进行数据采集的实践:异步运行时 `async-std`,HTTP 客户端库 `reqwest`,数据采集库 `scraper`,以及控制台输出文字颜色标记库 `colored`。

Continue reading

Android 支持 Rust 编程语言,以避免内存缺陷

C/C++ 语言中的内存安全漏洞,构成了 Android 平台上高达 70% 的高严重性安全漏洞。google 的想法是切换到 Rust 这样的内存安全语言,以做到首先防止 bug 发生。 谷歌指出:“Rust 使用编译时检查,来强制执行对象的生命周期/所有权。以及通过运行时检查,来确保内存访问有效,从而提供了内存安全保证。”

Continue reading

Android 平台基础支持转向 Rust

2021 年 4 月 7 日,zdnet 发布文章:Android 平台基础支持转向 Rust。2021 年 4 月 6 日,谷歌宣布,Rust 可以在 Android 开源项目内部使用。虽然 Android 平台上的应用程序可以用 java 和 Kotlin 等受监管的/托管类语言编写,但这些语言没有用于构建 Android 操作系统的低级语言(如 C/C++)的“控制和可预测性”。

Continue reading

Android 团队宣布 Android 开源项目(AOSP),已支持 Rust 语言来开发 Android 系统本身

对于 Android 来说,如果代码是用 C/C++ 编写的,并且在解析不可信的输入,那么它应该包含在一个严格受约束和特殊的沙箱中。但沙盒的开销昂贵:需要引入新进程,消耗额外的开销,并且由于 IPC 和额外的内存使用,而引入了延迟机制。沙箱技术,并不能消除代码中的漏洞,它的效率,会随着高 bug 密度而降低,从而允许攻击者将多个漏洞链接在一起。像 Rust 这样的内存安全语言,通过两种方式帮助 Android 克服这些限制:降低了代码中 bug 的密度,从而提高了当前沙盒的有效性;减少了 Android 的沙箱技术需求,允许引入更安全、资源更轻的新功能。

Continue reading

RustyHermit——基于 Rust 实现的下一代容器 Unikernel

RustyHermit,基于 Rust 实现的下一代容器 Unikernel,和 Linux 主机系统相比,性能表现差别极小。由于映像直接包含 OS 内核,unikernel 可以直接在虚拟机中引导运行,并且不需要在 VM 中包含 Linux 内核,也不需要包含用户区的典型软件堆栈。unikernel 不提供传统意义上的系统调用,因为所有操作都是以内核的特殊级别运行的。通常,unikernel 中,通过系统调用完成的操作,是通过公共函数调用提供的。这些内核是在虚拟机中运行,这将应用程序与实际系统隔离开来。此外,利用通用编译器分析方法检查软件栈的完整性,甚至可以删除不需要的组件,减少应用程序的占用。

Continue reading

Rustic:完善的纯粹 Rust 技术栈实现的国际象棋引擎,多平台支持(甚至包括嵌入式设备树莓派 Raspberry Pi、Buster)

`rustic` 国际象棋游戏引擎,纯粹 Rust 技术栈实现,未从任何其它国际象棋引擎做任何派生。rustic 集成了许多近几十年产生的新概念,包括国际象棋的玩法和编程开发方面,该引擎站在过去的国际象棋引擎巨人的肩膀上。支持多平台支持(甚至包括嵌入式设备树莓派 Raspberry Pi、Buster),可与其它开源的游戏用户界面集成。

Continue reading

Rust 迭代器(Iterator trait )的要诀和技巧

迭代器(Iterator trait ),是 Rust 中最有用的 trait 之一。通过两个要诀:为自定义集合(collection)添加 iter() 函数;从不同类型的多个迭代器中,返回其中之一,我们对其做以认知。

Continue reading

使用 Rust 极致提升 Python 性能:图表和绘图提升 24 倍,数据计算提升 10 倍

有时候,仅采用标准方法还不够好。本篇文章,是关于在重要的地方做最小的改变,从而达到最大的效果。处理来自船舶的 GPS 信号时,使用 Python 各种类库优化后,性能仍然不能满足。通过大约 300 行 Rust 代码,包含细节的整个实现,甚至包括 Rust 文档和单元测试!使得数据处理的速度大幅提升:图表和绘图提升 24 倍,数据计算提升 10 倍。生产环境中的体现,表明这是经过深思熟虑的、有针对性的优化。这次改进,不仅仅是学术上的,也不仅仅是为了降低工作成本。

Continue reading

【2021-04-03】Rust 核心团队人员变动

2021-04-03 Rust 内部博客发文:Niko Matsakis 正在逐步退出 Rust 核心团队,他将集中精力带领 Rust 语言团队。

Continue reading

Rust web 框架现状【2021 年 1 季度】

介绍了 Rust web 框架的开发状态、应用选择考量点等,涵盖安全性、灵活性、社区生态,以及项目规模等衡量因素。涵盖了包括 web 前端框架、Wasm 以及 web 后端框架。译者增加了对应的中文资源链接,方便感兴趣的朋友快速学习。

Continue reading

Rust 官方周报 384 期(2021-03-31)

Rust 官方周报 384 期:Rust 社区更新、官方资讯、项目/工具更新、观测/思考文章、实际演练文章、周最佳 crate、Rust 近期活动、Rust 工作招聘,以及 Rust 开发者引语等。第 384 期的技术文章很棒,值得深读。

Continue reading

Rust 中的解析器组合因子(parser combinators)

正则表达式,有着内在的问题,这意味着只能使用简短的表达。现在,一个更好的解析方法正在成为主流,可用作所有流行语言的工作库,它被称为“析器组合因子(parser combinators)”,可满足 99% 的实际场景。解析器组合因子(parser combinators),是一种用高阶函数构造的,可组合计算的方法。如果解析过程不是你产品或者你开发库的主要目标,那么解析器组合因子很可能对你的任务有足够的表现力和可执行力。

Continue reading

毕马威(KPMG)调查报告:人工智能的实际采用,在新冠疫情(COVID-19)期间大幅提升

在 2020 年,新冠疫情(COVID-19)期间,人工智能的实际采用得到了大幅度提升。但是否进展太快?毕马威(KPMG)的调查显示:普通民众、政府领导人,以及商界领袖,这些不同阶层的人士,对此有截然不同的观点。

Continue reading

HPy - 为 Python 扩展提供更优秀的 C API

HPy 提供了一个新的 API,以用 C 扩展 Python。有零开销、更快速、方便调试、通用的二进制文件(不用任何修改,可在 CPython、PyPy、GraalPython 等解释器上直接加载),以及更加符合时代标准等优点。

Continue reading

2021 年,学习 Rust 的网络资源推荐(2)

上文《2021 年,学习 Rust 的网络资源推荐》中,我们介绍了 Stjepan Golemac 和 Luciano Mammino 两位作者整理的 Rust 学习资源,都是优秀且免费的。包括:官方书籍、非官方书籍,以及优秀的开发者博客。本文,我们继续看看 2 位作者推荐的视频流媒体、电子期刊、播客、社区和聚会、练习和研讨会,以及精选开源项目等 Rust 学习资源。另外,本文中还推荐了 Rust 优秀的付费学习资源。

Continue reading

2021 年,学习 Rust 的网络资源推荐

这篇博文是 Stjepan Golemac 和 Luciano Mammino 两位作者整理的,是关于 2021 年学习 Rust 的资源列表推荐。这些资源列表基本都是国外的英文资料,包括免费和付费的。其中有些资源列表已经有中文翻译,笔者一并做了说明和加了链接。

Continue reading

况属高风晚,山山黄叶飞——彭州葛仙山露营随笔

四川成都彭州葛仙山露营随笔。高山之巅,月黑风高。牡丹紫荆,争奇斗艳。

Continue reading

Rust 1.51.0 已正式发布,及其新特性详述

Rust 1.51.0 稳定版,展示了相当长的时段内,Rust 语言和 Cargo 工具的特性迭代,稳定了最具价值的常量泛型(const generics),以及 Cargo 的新特性 `resolver`。另外,还包括适用于 macOS 的拆分调试信息、已稳定 APIs,以及 Clippy 工具的诸多改进。

Continue reading

为 Async Rust 构建共享的愿景文档—— Rust 社区的讲“故事”,可获奖

2021 年 3 月 18 日,Niko Matsakis 代表 Rust 社区的 Async 基础工作组发表了一个倡议书:倡议 Rust 社区共同参与,为 Async Rust 构建一个共享的愿景文档。参与者可以基于自己真实的异步开发经验,提出建议;分享自己在异步开发中,遇到的困难和解决方法;分享自己在异步开发中,为了提高效率而采用的变通方法和技巧;甚至就是基于真实的异步开发经验,切合实际地描述 Async Rust 的美好未来……直至 2021 年 4 月 2 日,都是收集这些关于 Async Rust 现状的“故事”。随后,Async 基础工作组会进行头脑风暴会议,对这些关于 Async Rust 现状的“故事”进行审阅。头脑风暴会议结束后,Async 基础工作组将评选出“最幽默的故事”或“必须支持的贡献者”等奖项,以及获奖者。

Continue reading

Rust 纪元第 382 周最佳 crate:ibig 的实践,以及和 num crate 的比较

Rust 纪元第 382 周,评出的周最佳 crate 是大数计算方面的 `ibig`。结合目前使用较广的大数计算 crate `num`,采用 2 种阶乘的不同实现方式,进行实践。

Continue reading

Rust 1.51.0 稳定版本改进介绍

Rust 1.51.0 将于本周发布,改进包括语法、编译器、类库、已稳定 APIs、Cargo、Rustdoc、Misc,以及兼容性等方面。

Continue reading

Rust 中将 markdown 渲染为 html

Rust 中,对于将 markdown 渲染为 html 方面,目前成熟度较高的 crate 主要有 2 个:`markdown.rs` 和 `pulldown-cmark`。功能都非常完善和强大:支持解析文档注脚(footnote)、github 风格的表格、github 风格的任务列表,以及删除线效果(strikethrough)等,但要主要支持是选择性地。 性能方面,或许测试体量不足,笔者测试感觉差别不大。前者 `markdown.rs` 稍微简单易用一些。后者 `pulldown-cmark` 专注于 `CommonMark`,默认提供命令行工具。采用拉取解析(pull parse)模式,其为 Rust 开发的书籍工具 `mdBook` 所使用。

Continue reading

国民应用 App 的用户隐私数据窥探

但是,作为手机行业巨头的苹果公司,是硬件提供商。其新出的系统升级,则向我们暴露了一些“国民应用”比您更了解您自己的隐私细节。 最近,看到了凤凰网科技的一条推送。苹果公司即将于 2021 年 9 月份推出的 iOS 14.5 功能,加强了对这些 App 关于用户隐私数据获取的限制。不交叉的软件和硬件业务,因此产生了冲突。

Continue reading

构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb(3)- 重构

前 2 篇文章中,我们初始化搭建了工程结构,选择了必须的 crate,并成功构建了 GraphQL 查询服务:从 MongoDB 中获取了数据,并通过 GraphQL 查询,输出 json 数据。本篇文章,本应当进行 GraphQL 变更(mutation)服务的开发。但是,虽然代码成功运行,却存在一些问题,如:对于 MongoDB 数据库的连接信息,应当采取配置文件存储;通用公用的代码,应当组织和抽象;诸如此类以便于后续扩展,生产部署等问题。所以,本篇文章中我们暂不进行变更的开发,而是进行第一次简单的重构。以免后续代码扩大,重构工作量繁重。

Continue reading

构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb(2)- 查询服务

上一篇文章中,我们对后端基础工程进行了初始化。但是未有进行任何开发,本文中,我们将开启基础 GraphQL 服务的历程。包括如下内容: 1、构建 GraphQL Schema; 2、整合 Tide 和 async-graphql; 3、验证 query 服务; 4、连接 MongoDB; 5、提供 query 服务。

Continue reading

构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb(1)- 起步及 crate 选择

本系列博客中,我们使用 Tide + async-graphql + mongodb + jsonwebtoken + handlebars-rust 构建基于 Rust 技术栈的 GraphQL 服务,我们需要做到前后端分离。需要说明的是:本博客即采用前述 Rust 技术栈搭建,目前仍然处于开发阶段。 本文为起步教程,主要包括: 1、工程初始化; 2、crate 的比较和选择。

Continue reading

Rust 操控大疆可编程 tello 无人机

大疆的 tello 无人机也提供了可编程的接口,官方已经支持了 Scratch 图形化编程。由此分析,我们可以得出 tello 无人机实际上提供了 2 个接口:tello 无人机应用程序使用的基于文本的接口,以及一个非公共接口。因为提供了开放的接口,才能和图形化编程进行文本交互,实现用户的编程控制。

Continue reading

Introduction

纯粹 Rust 技术栈开发的博客。

Topics

rust(103)

graphql(67)

webassembly(35)

async-graphql(19)

rust-官方周报(17)

python(13)

wasm(9)

tide(8)

rust-官方博客(8)

yew(8)

rust-web(7)

mysql(6)

this-week-in-rust(6)

rbatis(5)

mongodb(4)

android(4)

actix-web(4)

json-web-token(3)

jwt(3)

cargo(3)

postgresql(3)

rust-wasm(3)

trunk(3)

handlebars(3)

rhai(3)

用户隐私(2)

学习资料(2)

技术延伸(2)

ai(2)

人工智能(2)

rust-compiler(2)

rust-基金会(2)

rust-foundation(2)

rustup(2)

rust-toolchain(2)

rust-工具链(2)

rust-游戏开发(2)

rust-区块链(2)

graphql-client(2)

rust-game(2)

tello(1)

drone(1)

无人机(1)

隐私数据(1)

markdown(1)

html(1)

crate(1)

async(1)

异步(1)

旅游(1)

不忘生活(1)

葛仙山(1)

hpy(1)

python-扩展(1)

正则表达式(1)

解析器组合因子(1)

组合器(1)

regular-expression(1)

parser-combinator(1)

regex(1)

官方更新(1)

rust-工作招聘(1)

rust-技术资料(1)

rust-周最佳-crate(1)

rust-web-框架(1)

rust-web-framework(1)

rust-核心团队(1)

rust-core-team(1)

rust-language-team(1)

pyo3(1)

rust-python-集成(1)

python-性能改进(1)

迭代器(1)

iterator-trait(1)

国际象棋(1)

chess(1)

游戏引擎(1)

game-engine(1)

虚拟化(1)

unikernel(1)

rustyhermit(1)

linux(1)

virtualization(1)

sandboxing(1)

沙箱技术(1)

数据采集(1)

异步数据采集(1)

docker(1)

镜像(1)

生产环境(1)

rust-评价(1)

rust-2021-edition(1)

rust-2021-版本(1)

graphql-查询(1)

vision-doc(1)

愿景文档(1)

代码重构(1)

steering-cycle(1)

方向周期(1)

隐私声明(1)

机器人(1)

robotics(1)

rustdoc(1)

rust-编译器(1)

实时音频(1)

real-time-audio(1)

变更服务(1)

mutation(1)

查询服务(1)

query(1)

rust-贡献者(1)

rust-轶事(1)

rust-稳定版(1)

rust-预发布(1)

rust-测试(1)

安全编程(1)

可信计算(1)

安全代码(1)

secure-code(1)

rust-android-integrate(1)

rust-embedded(1)

rust-嵌入式(1)

rust-生产环境(1)

rust-2021(1)

rust-production(1)

网页快照(1)

网页截图(1)

水印效果(1)

图片水印(1)

yew-router(1)

css(1)

web-前端(1)

wasm-bindgen(1)

区块链(1)

blockchain(1)

surf(1)

dotenv(1)

标识符(1)

rust-1.53.0(1)

rusthub(1)

Elsewhere

- Open Source
  1. github/zzy
  2. github/sansx
- Awesome Blog
  1. Sansx's Studio
  2. 曙光磁铁的博客
- Learning & Studying
  1. Rust 学习资料 - 芽之家