使用微信扫一扫分享到朋友圈
使用微信扫一扫进入小程序分享活动
各位热爱关心 Rust 的朋友们,
第二届中国Rust开发者大会(RustChinaConf 2021~2022)线上大会 来啦!本次大会将于7月31日(周日)以线上形式举行。
Rust China Conf 为中国本土范围的 Rust技术 大会。本次大会致力于成为中国 Rustaceans 交流的盛宴,为国内的 Rust 开发者和企业提供一次充分的成果展示、技术分享、能力提升、行业资讯交流、企业人才储备建设的机会。
本次大会演讲主题涵盖广泛,涉及编程语言、操作系统、数据库、分布式系统、云计算、嵌入式、量化金融、学术研究等各个领域的应用实践。
我们衷心希望这次的 Rust China Conf 能够让大家深入了解 Rust 中文社区!
大会讲师与议题将持续更新,敬请大家关注。
主会场是来自各大公司的 Rust 最佳实践,涵盖多个领域。
由大会主持进行开场介绍
Rustdoc是官方的Rust工具,可以为你的crates生成文档。但它所做的远不止这些:它允许你测试你的代码示例,在文档和项目的源代码之间切换,将markdown文件转换为HTML,自动生成项目的链接,显示文档的覆盖范围,它有自己的行数,它允许,等等。
但这还不是全部! 很多更美好的功能即将到来。例如,其中一个功能允许你从源代码页面直接跳到一个项目的定义或其文档页面。
本讲座将介绍这些功能,让你了解rustdoc允许你做什么。
运营效率是评价程序和编程语言时的重要考量,而单指令多数据流(SIMD)是一种能显著提升程序效率的计算加速技术。本议题会以该技术为核心,从社区贡献者的角度介绍Rust社区中计算加速库的发展及现状,并以实际开发中的代码重构案例实践为基础,为大家解读Rust中各种计算加速技术的使用,希望能对大家平时的学习和开发有所启示。
模糊测试(Fuzzing)是一种高效的自动化漏洞挖掘手段,其本身的实现需要高效的执行效率和高度抽象的输入,我们将介绍使用Rust来实现模糊测试工具核心特性时遇到的挑战,以及如何解决的它们的。
维护一个复杂的 Rust 项目会遇到各类挑战。本次演讲介绍维护一个10~20万行代码级别的 Rust 区块链项目时,在架构、workspace、编译、测试等方面的经验和心得。
《Rust 实战》是 《Rust in Action》的中文译本,由人民邮电出版社引进翻译。
介绍为 Rust 社区提供开源贡献的来自中国的力量
本会场演讲内容围绕 Rust 编程语言自身,以及基于 Rust 语言编写的新编程语言的相关研究与实践。
本分享介绍如何基于 LLVM 为 Rust 代码进行混淆,并且分享一些案例。
模糊测试(fuzz)是一种有力的寻找程序错误的手段。模糊测试以随机或者启发式的方法产生大量输入,进而反复执行程序来检测程序中的错误。Rust模糊测试有一个活跃的社区,已经通过实践证明了模糊测试在Rust开源项目上寻找程序错误的能力。本talk将和大家分享Rust模糊测试技术的背景,适用场景,以及我们关于如何自动为Rust库生成模糊测试目标程序的初步的研究结果。
本次分享将带你整体认识《Rust 编码规范》,以及如何在项目中应用编码规范。
你可能也会有以下疑问:
为什么 Rust 语言有严格的编译器检查和clippy这样的静态检查工具还需要编码规范?
Rust 编码规范的立意和目标是什么样的?
Rust 编码规范和 Clippy 之类的工具是什么关系?
Rust 编码规范内容组织是怎么样的?
如何在项目中应用 Rust 编码规范?
或者其他一些疑问,在本次分享会中都可以得到解答,欢迎参与。
本会场演讲内容主要围绕 Rust 语言的扩展和优化等相关内容
ckb-vm 是 Rust 实现的 RISC-V 虚拟机, 我们通过在其关键位置引入手工汇编代码以获得相较原生 Rust 代码 5 倍以上的性能提升.
WebAssembly (Wasm) 最初为浏览器应用而生,但随着 WASI 的出现以及开发者生态的壮大,Wasm 作为一种轻量级的软件容器在服务端的作用愈发明显。服务端的 Wasm 提供了与本地代码相媲美的速度,但又不失安全性,可移植性,与可管理性。 通过支持 JavaScript 在 wasm 中运行,可以绕开学习 c/c++、rust 使得开发者可以对基于 wasm 的产品有流畅的上手体验,减少因为开发语言的问题而流失用户的遗憾。 得益于 Rust 优秀的设计,使用 Rust 来拓展 JavaScript runtime 能够开发出高质量的 module,给用户稳定的使用体验。
经过多年的发展,async Rust 生态逐渐成熟。绝大多数开发者会使用流行的 async runtime(如 tokio)作为 Future executor. 但 tokio 作为一个普适的 async runtime,不一定能最完美地实现每个项目的具体需求。本次演讲将以 TiKV 为例,谈谈如何定制自己的 Future executor,实现性能指标收集、高级调度控制、动态线程数调整等高级特性。
本会场演讲内容围绕 Rust 在不同商业领域的应用。
随着云原生技术的普及,使用云原生技术栈来迭代发布应用已经成为常态。云原生和区块链两种技术都属于分布式系统的范畴,区块链的去中心化和可信计算的特质,能够在实际应用中弥补云原生的不足。本篇将从主要特性、微服务架构、运维部署等方面一一阐述云原生区块链框架的实践之路。
介绍 deno 架构及其要解决的问题,并且了解为什么 deno 使用 Rust,从而给我们什么启示。
本次演讲分享非凸科技如何利用 Rust 提高策略稳定性,大幅降低意外回撤率等相关实践。
本会场演讲内容围绕 Rust 在生产环境的应用实践。
重点介绍当前 Rust 微服务生态以及应用,占用资源优势以及高并发降低开发者心智负担的优势。以及介绍使用 Rust 编写 PostgreSQL 插件和 GraphQL 无服务器后端。结合 NEAR Indexer 项目介绍 ETL 方向 Rust 的应用以及优势。
我们都知道 "机器比人便宜, 能加机器就加机器" 的这一道理, 在字节, 我们遇到了困境, 机房容量有限, 自建机房周期太长, 跨机房延时太高等等, 无法再去肆意挥霍机器, 也不能想加就加, 彻底打破了这一道理. 在存量优化的阶段, 我们希望有更好的技术选择, 就和当年大家在知道摩尔定律失效之后一样. 当然机器确实比人便宜:)
面对时间序列数据存储的需求,我们使用 Rust 构建了一个时序模型的 KV 存储引擎,在数据组织、异步 I/O 及 Thread Per Core 等方面进行了探索,并在本次 Talk 中向大家分享这一过程中的经验与体会。
本会场演讲内容围绕 Rust 在密码学、隐私计算和可信计算领域的应用实践。
介绍Rust社区中密码学生态的现状,并结合当前项目密码算法和安全协议的开发实践,分享Rust在密码算法上的开发优势和经验。
数牍科技基于Rust语言针对隐私计算的特性研发了一套分布式的计算框架。我们将介绍隐私计算的特点,Rust语言的安全和高效特性如何帮助我们实现高性能的分布式计算,以及我们对于Rust语言的使用体会。
在大数据时代,数据的开放共享、资源整合和安全保护已经成为重要的话题。传统数据处理方式已经无法满足现代数据的采集、流通、计算中对于安全的需求。隐私保护技术的出现正是为了解决这一问题,打破数据壁垒,解决数据孤岛困境。Rust 的内存安全保证、最小运行时、零成本抽象为隐私计算提供了安全可靠的开发基础。在这次演讲中,我们将了解隐私计算和可信执行环境的基本知识,为什么编程语言的选择对隐私计算系统开发如此重要。以 Apache Teaclave (incubating) 项目为例,介绍在项目实践中探索 Rust 在隐私计算应用的最佳编程实践。最后,我们将会了解在可信执行环境和隐私计算方向上,Rust 生态还需要补齐哪些方面,为未来的项目的发展提供思路。
Intel SGX是一个把应用与OS完全隔离的可信执行环境,应用无法直接访问OS提供的资源。我们采用的Teaclave-SGX-SDK只提供了no_std环境,导致crates生态下大量的库都无法被使用。为了在SGX环境下开启std支持,我们通过补齐libc缺失的函数,实现了对OS基本功能的模拟。为了保证尽可能小的安全边界,我们对每个增补的libc函数做了权限控制。同时引入了二进制分析,确保程序不会出现SGX非法指令。
本会场演讲内容围绕 Rust 在嵌入式、操作系统和物联网的应用实践。
Rust for Linux 离进入 Linux 主分支已经不远了,大家准备好使用 Rust 开发 Linux 内核了吗?本次分享主要为大家介绍 Rust for Linux,并且带领大家写一个内核模块,从编写代码到编译上线,综合体会 Rust for Linux 的使用过程。最后也给大家带来一些 Rust for Linux 的编写经验和原理解释,帮助能够深入了解这一技术。
本次演讲,我们将从嵌入式Rust出发,描述产品可用的RISC-V固件应用例子。作为用途广泛的内存安全语言,Rust将在物联网、能源等领域大放异彩;厂商、社区如何参与嵌入式Rust的开发体系?固件软件保持在内核后台运行,事关RISC-V系统的安全、可靠,其稳定性不容闪失,该如何用Rust语言保证这一点?最后,我们将介绍RustSBI和Oreboot引导程序项目,这些优秀的项目诞生于RISC-V固件可移植和开放、易用性的呼声,是嵌入式Rust生态用于RISC-V SBI固件的良好示例。
介绍Rust在机器人控制器开发、运动控制、实时系统、物联网、WebAssembly的实践。
本会场演讲内容围绕 Rust 在分布式系统领域的应用实践。
Hydrofs 是基于 rust 从0开发的一款支持 posix 语义的分布式存储, 此次演讲会阐述我们创新的设计哲学和分布式理论, 以及分享 Rust 在系统编程方面的独有优势
构建完全正确的分布式系统非常困难。如果你做过 6.824 的 Raft 实验,相信你一定遇到过那种运行上千次才蹦出一次的 bug 并因此调到怀疑人生。为了解决这一问题,我们用 Rust 开发了确定性的分布式系统模拟器 Madsim。基于 Madsim 的 Raft 实验,你可以在 1 分钟内将全部 50 组测试用例运行 100 次,并在出现问题后随时复现相同的执行过程,大幅提高开发调试效率。本次分享将介绍 Madsim 的实现原理,以及在实际项目中落地应用的经验。
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。Sentinel 拥有庞大的开源社区和众多的使用者,随着 Rust 生态在云原生领域的蓬勃发展,社区也开始尝试进行 Rust 版本的 Sentinel 开发。
本会场为各公司线上 Workshops 的主题介绍。
介绍:Rust 由于其高效、安全的特点,被广泛应用于区块链技术中,其中也不乏通过 Rust 开发智能合约的探索。
作为新一代高性能区块链,在 NEAR 上,使用 Rust 开发智能合约具有出色的开发体验、运行效率和安全性。
本次讲座中,NEAR 工程师 Daniel 将介绍使用 Rust 开发智能合约的入门方法和学习路径,并分享实战中的挑战与心得,帮助有兴趣使用 Rust 开发智能合约的开发者循序渐进,成为合格的 Rust 合约工程师。
参考资料:
NEAR 开发者文档:https://docs.near.org/
NEAR 中文社区学习视频:https://space.bilibili.com/492846343
时间:7月31日下午4点~6点
Substrate-IBC是由Interchain基金会资助, 由章鱼网络提出并开发的一个提案。Substrate IBC 模块,也称为 pallets,是连接Polkadot和Kusama与Cosmos链的重要一步,使两个生态系统之间的资产和数据的安全交换成为可能。Substrate-IBC 模块,将使开发者能够创建他们自己的具有IBC功能的Substrate区块链。 这个模块的目标是让建立在Substrate上的区块链可以通过IBC协议以无信任方式与其他支持IBC的区块链链交互。
WasmEdge workshop
RDMA是常用于超算和高端存储领域的高性能网络协议。RDMA有专用硬件网卡用于协议解析,同时RDMA的数据通路实现内核旁路,这样在RDMA网卡收发数据包时,可以完全避免由内核处理数据包导致的额外内存拷贝以及上下文切换,因此RDMA在网络传输方面相比内核的TCP栈可以达到很高的性能。
但是用RDMA开发网络应用比基于内核的TCP栈要复杂很多。首先,由于RDMA的数据通路不经过内核,因此在用户应用要发送和接收数据时需要自行管理内存,特别是在接收数据时,用户应用必须保证收到的数据不能超过接收内存区域的大小,否则RDMA协议栈会报错。其次,由于RDMA的单边操作是完全由硬件处理没有软件参与,因此接收端的用户应用完全无法感知RDMA单边操作,使得接收端RDMA应用有可能在单边操作执行的过程中修改内存,导致单边操作传输的数据出错,更严重的是接收端和发送端都无法感知数据出错。再者,RDMA的API是基于C实现,非常底层,需要用户在开发时要格外注意,不然那就会导致出错,比如RDMA用于接收和发送数据的内存区域必须是在堆上分配,不能是在栈上分配。
针对RDMA开发的种种不便,我们用Rust封装了一套RDMA的API,一方面简化RDMA开发的复杂度,另一方面保证用户应用实现高性能收发RDMA数据包,不会因为采用Rust封装RDMA的API导致有额外的性能开销。
本次Workshop准备了动手实验环节,方便大家实际体验如何用Rust构建RDMA应用,建议大家提前准备好实验环境。本次Workshop的相关资料,包括实验环境准备、动手实验的代码等,参见https://github.com/datenlord/Rust2022Workshop
欢迎对RDMA感兴趣的朋友参加本次Workshop!
腾讯会议:363-857-035
https://meeting.tencent.com/dm/rZpZEMmUek1Z