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 基金会代表其管理上述服务。

2021-04-18 09:17:01+08:00
Rust

rust-lang.org、crates.io,以及 docs.rs 的管理,已由 Mo

2021-04-18 09:17:01+08:00

2021 年 2 月 8 日,由 5 家公司:华为、亚马逊、谷歌、微软,以及 Mozilla 作为创

Continue reading
Rust

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

2021-04-16 12:57:41+08:00

Rust 官方周报 386 期:Rust 核心更新、Rust 社区更新、官方资讯、项目/工具更新、观

Continue reading
budshome (blog: 芽之家) shared the aphorism --
为何天意总让年轻人承载悲痛?我不知道。但我想年龄会加深所有的情感,包括悲痛。 -- 电影《利刃出鞘》

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