这是 Facebook for Develpers 网站出的Rust Nibbles系列文章,介绍 facebook 开源的各种 Rust 库。
原文: https://blog.rust-lang.org/2022/12/05/survey-launch.html
pyQuil 一直是在 Rigetti 量子处理单元(QPUs)上构建和运行量子程序的基石,通过我们的 Quantum Cloud Services(QCS™)平台提供服务。它是我们的一个重要客户端库。然而,随着 QCS 平台的发展,我们越来越倾向于使用 Rust,因为它具有出色的性能、类型系统和强调正确性。为了支持Rigetti 不断增长的 Rust 工具和服务生态系统,pyQuil 中的许多功能已被我们的 Rust 库取代。幸运的是,Rust 很适合用作外部函数接口(FFI)。这对我们来说是 Rust 的另一个重要优势,因为它是在我们的服务和高级语言(如 Python)或低级语言(如 C)之间架设桥梁的理想选择。
How using hyper in curl can help make the internet safer
2022 年对于成为 Rust 程序员来说是伟大的一年。Rust 还不是很主流,但凭借其忠实的用户群和在科技界不断增长的用例,很容易看出 Rust 将如何在 2022 年继续发展壮大。我们列出了许多值得期待在 Rust 世界中发生的事情。列出了几个会议以及对 Rust 本身的一些改进。此外,我还介绍了 Rust 编程语言的一些主要采用点。
LWN.net 发布了一篇文章,讨论了 Rust 代码在内核中如何适应内存模型的问题。Rust 语言与 C 语言在许多方面都有所不同,这些差异在使用 Rust 集成到以 C 为主导的系统中时可能会导致一些不匹配,尤其是在内核中。文章详细探讨了内存模型的概念,以及如何在并发环境中安全地访问数据。目前,内核开发者更熟悉 Linux 内核内存模型(LKMM),因此,当 Rust 代码与 C 代码交互时,应使用 C 代码所使用的模型。Boqun Feng 提出了一个初步的补丁集,展示了 Rust 代码如何遵循内核的内存模型。尽管 Linus Torvalds 对于基于语言的内存模型在内核中的使用持保留态度,但讨论的结果很明确:在可预见的未来,内核中的 Rust 代码将继续使用内核的内存模型。
Rust Async 工作组的主要目标之一是允许无处不在(尤其是在 traits 中)开 async fn 。在这篇文章中,我想提炼一些提议的设计,并展示如何实现特征中的异步函数。我们将研究一种可行的方法,尽管我想强调这不是唯一的方法,我们最终将采用的设计的许多细节仍在制定中。
Pingora 是一个 Rust 框架,用于构建快速、可靠和可编程的网络系统。它已经经过了大规模的测试,多年来一直以每秒超过 4000 万次的速度提供互联网请求。
AdGear公司(一家实时广告平台)开源的库。这个库采用了与Rust中大多数其他异步IO库完全不同的方法:它实际上受到了Pony编程语言的启发。 因此,它不使用Futures,它不使用async/await,它只提供简单的trait。
此版本最大的变化是 Lapce 将 GPU 后端从 Wgpu 更改为 OpenGL,以实现更好的兼容性,特别是双源混合功能使我们能够进行子像素文本渲染。除此之外,我们还通过 Swash 添加了文本整形支持。
tab是一个类似于tmux或screen的终端复用器,作者尝试过tmux和screen之后依然觉得有不满意的地方,于是使用Rust自己写了一个。
Rust语言是一种新型的系统编程语言,由Mozilla开发,旨在提供高效、高安全性和并发性的编程体验。Rust语言的出现填补了C++和其他系统级编程语言的空缺,并且在Web浏览器、操作系统、游戏引擎、区块链等领域得到了广泛应用。本文将介绍Rust语言的学习路线和技术汇总,帮助读者快速掌握Rust语言的基础知识和进阶技能。
这是 www.chromium.org 上关于 chromium 内存安全的一篇博文,Chrome 工程师正在尝试 Rust。在可预见的将来,C++ 仍然在代码库中占据主导地位,所以如果任何地方使用 Rust,都需要考虑与 C++ 相适应。这似乎提出了一些 C++/Rust 互操作性的挑战,而在这之前其他人都没有遇到过。
Rustlings是一个用于学习Rust编程语言的项目,提供小练习帮助熟悉Rust代码的阅读和编写。
作者在实现一个 DNS resolver 的时候, 遇到了缓存问题. 于是, 自己实现了一个可过期, size-bounded 的 LRU 缓存. 作者从简单的缓存开始, 一直到实现最后的 LRU, 每一步都有详细的步骤和代码.
当今,包括推理应用程序和智能体在内的大多数LLM应用程序是用Python编写的,但这种形势即将发生改变。对于新一波开发人员来说,Python太慢了,太臃肿了,而且自相矛盾,非常笨拙。其实,LLVM的Chris Lattner,即Clang和Swift的发明者已经证实了Python比编译语言慢35,000倍——这也是为什么他发明了Mojo语言作为Python的替代品。
当我有一个想法,并且这个想法很有意思,正好戳中我技能的盲区时,我便有一种强大的要将其实验一番的冲动。自从上周做一个「前端中的后端」的想法出炉后,这周我几乎寝食难安,随时随地都在想这件事,所以后来干脆撸起袖子开干,毕竟 Linus 大神告诫我们:
视频链接:https://rust-lang.feishu.cn/minutes/obcnns5g26e9bkzhi87s6t48
作者 | Anthony Oleinik 译者 | 平川 策划 | 刘燕 本文最初发布于 Level Up Coding 博客。 别激动!我能感受到你点击这篇文章时怀有的愤怒。我并不讨厌 Rust——在许多场景中,我都倾向于使用它。所有编程语言都是达成目的的手段。然而,就我要处理的场景而言,Rust 并不是很适合,我不得不把这个项目推倒重来,用 Golang 重写。 该项目是 Hasura 的一个简单的后端 webhook 服务。你可能不了解 Hasura,那是一个 Postgres 数据库封装器
如果你在San Francisco, Berlin 或 杭州,想要分享Rust在区块链中的应用,可以填一下这个申请表
在 2023 年,在开始开发 API 和 Web 应用程序之前,哪个 Rust Web 框架最适合研究?在这里,我们将看看一些目前使用或看起来很有前途的最流行的框架。
本文将围绕 Rust 性能评估和调优主题,比较系统地介绍 Rust 代码的性能优化经验。先从大的总原则出发,介绍在编写 Rust 过程中应该遵循哪些原则对后续优化有帮助。接下来会分享一些代码优化的方法和技巧,然后介绍可以用于 Rust 代码性能评估的工具,也会包括 Rust专用的一些异步并发测试工具介绍。
这篇文章介绍了在异步 Rust 中进行模拟测试(mocking)的方法。文章分为三个部分:
https://www.cnblogs.com/Can-daydayup/p/17804085.html
async 是一个修饰符,它可以应用在函数上,这种函数不会在调用时一句句运行完成,而是立即返回一个 Future 对象,这个 Future 对象最终将给出这个函数的实际返回结果。而在一个这样的 async 函数中,我们可以使用await运算符,将它用在其它会返回 Future 的函数上,直到那些 Future 返回实际结果。通过这种方法,异步并发开发更加方便了。
根据维基百科的定义,协程,是指在非抢占式地处理多任务场景下,用于生成子程序的计算机程序组件,它允许在执行过程中被暂停或恢复。
本文将从课程设计的角度和大家聊一聊 PingCAP Talent Plan(TiKV 方向)课程,包括课程设计的逻辑、课程设计中遇到的困难,以及大家在学习过程中常见的问题和解答等。
Simon 是 Kraken 的工程总监,领导着 CoreBackend 团队。本文回顾了 CoreBackend 团队最近两年中应用 Rust 的情况,并分享其大规模应用 Rust 过程中总结的观点。希望本文能够帮助那些考虑使用 Rust 进行开发的公司以及使用 Rust 开发项目的开发人员。
在过去的几年里,Rust在程序员中获得了热情的追随。技术趋势来来往往,因此很难区分新事物带来的兴奋与技术优势带来的兴奋,但RT-Thread社区开发人员Liu Kang认为Rust是一种真正设计良好的语言。Kang说,Rust旨在帮助开发人员构建可靠、高效的软件,它从一开始就是为了这个目的而设计的。在本文中,Kang演示了Rust的许多关键特性,这些特性正是Rust适合嵌入式系统的原因。
文章主要讨论了关于Rust编译时长的问题。尽管已有并行前端、Cranelift后端和lld链接器等技术在改善Rust的编译效率,但由于一些根本性限制,其编译速度仍可能无法达到所有人的期望。 然而,作者指出有一种新的看法:由于Rust能在编译过程中捕获诸多问题,因此编译实际上可以视为你测试程序的一部分。这就是说,程序中任何规定的接口(如函数的签名、特性、变量类型)在编译时都相当于执行了一次小型的单元测试,而任何编译错误都可以看作是测试的失败。
GraphQL 是 Facebook 开发的一种数据查询语言,旨在为移动和 Web 应用程序前端提供服务。最近几年,GraphQL 应用趋势增长明显,如 GitHub 几年前已经仅对开发者提供 GraphQL API。相比较 Restful API,GraphQL 优势明显:
作者 | Simon 译者 | 王强 策划 | 万佳 两年多来,Kraken 的 Core Backend 团队一直在用 Rust 来对原本使用 PHP 编写的服务进行现代化改造,同时还在用 Rust 开发新产品、扩展功能集合并支持不断增长的加密货币交易活动。 1重写核心服务 针对一个问题从头开始构建一个解决方案往往会给我们带来另一个问题。当原来的开发人员没有参与新解决方案的设计和实现时,这种情况尤其常见。还有一些情况下,新的方案理论上更好用,但是做起来费的时间太久,拖慢了系统响应需求的进程。虽然我们可以设
TiKV 是一个支持事务的分布式 Key-Value 数据库,有很多社区开发者基于 TiKV 来开发自己的应用,譬如 titan、tidis。尤其是在 TiKV 成为 CNCF 的 Sandbox 项目之后,吸引了越来越多开发者的目光,很多同学都想参与到 TiKV 的研发中来。这时候,就会遇到两个比较大的拦路虎:
该模块提供了一个可移植的不绑定于任何硬件架构的 SIMD 操作的抽象。目前 nightly-only.
Github 链接:https://github.com/epage/string-benchmarks-rs
不管你是否听说 Rust 语言,亦或者喜欢与否,Rust 都在系统编程的世界里掀起了一场风暴,成为继 C/C++ 之后的又一个选择。尽管 Rust 很耀眼,但作为一个年轻的编程语言,缺点和优点也都很明显。
Rust 编程语言在安全性方面具有一些优势,因此某些 Linux 内核开发人员希望使用它。其中一位 Nick Desaulniers 希望在即将举行的 Linux Plumbers Conference 上进行介绍和讨论。Linux Plumbers Conference 是一个会议,参会的是从事 Linux 工作的顶尖开发人员(包括内核子系统,核心库,窗口系统等)。
半年前,我写了一篇《三万言|2021 年 Rust 行业调研报告》[1] ,内容主要围绕 Rust 语言介绍 和 行业领域开源应用盘点 两大部分内容。时隔半年,我觉得有必要再写一篇年终的Rust 生态调研报告。因为我想给大家提供一个比较全面的视角,通过挖掘互联网上的各种散落且隐藏的信息,最终绘制出一张 Rust 的“生态地图”,让大家尽量客观公正地去认识 Rust 语言。
在 Wallaroo Labs,我是工程副总裁,我们正在构建一个用 Pony 编程语言编写的 高性能分布式流处理器。大多数人没有听说过 Pony,但它一直是 Wallaroo 的最佳选择,它也可能成为你的下一个项目的最佳选择。
XV是一个终端16进制查看器,作者之前是Java开发者,XV是他的第一个Rust项目。他在本文主要介绍了UX中使用panic的一些经验。
独立游戏开发者卡特·安德森发布了群集引擎(Bevy引擎)。这个引擎能用于开发游戏和应用程序,它是免费的开源项目。它的架构充分地利用了Rust语言模块化、速度和开发周期短的特点,可以跨平台、三维渲染,相比竞品,它的编译时间更短,功能更丰富。
作为 Rust 的忠实拥护者,Embark Studio 的工程师们正在使用 Rust 开发渲染引擎和游戏,并且贡献了 rust-gpu 这个项目。
P99 Conf[1] 是一个由 Scylladb[2] 组织的新的跨行业的线上Conf,为工程师而设。该活动以低延迟、高性能设计为中心,范围包括操作系统(内核、eBPF、IO_uring)、CPU(Arm、Intel、OpenRisc)、中间件和语言(Go、Rust、JVM、DPDK)、数据库和可观测性方法。P99 CONF只面向技术人员,你的老板不在邀请之列。
RDMA是常用于高性能计算(HPC)领域的高速网络,在存储网络等专用场景也有广泛的用途。RDMA最大的特点是通过软硬件配合,在网络传输数据的时候,完全不需要CPU/内核参与,从而实现高性能的传输网络。最早RDMA要求使用InfiniBand (IB)网络,采用专门的IB网卡和IB交换机。现在RDMA也可以采用以太网交换机,但是还需要专用的IB网卡。虽然也有基于以太网卡用软件实现RDMA的方案,但是这种方案没有性能优势。
从输出耗时看,同样的硬件条件情况下,rust的实现,性能高于原生js,但略逊于wasm版本(可参见react+rust+webAssembly(wasm)示例 )
2021 年 5 月 15 日,Rust 团队发表文章 Six Years of Rust,回顾了自 2015 年发布 Rust 1.0 以来的 6 年发展历程。
本文使用Tokio直接构建 Actors, 而不是使用任何现有的 actor 库.
原文链接:https://pkolaczk.github.io/memory-consumption-of-async/
(头一次听说kakoune这个编辑器,恕我无知)。期待其他编辑器也支持,最好是能支持自定义各种emoji。
基于开源、快速开发、可靠性,以及高性能的特性,Rust 正在成为最流行的编程语言之一。在 Rust 中构建新的 web API 时,需要着重考虑前端和后端开发,以及所采用 web 框架的优缺点。
领取专属 10元无门槛券
手把手带您无忧上云