从头开始构建云数据库:为什么我们从 C 迁移到 Rust
RisingWave 是一个云原生流式数据库。该系统背后的想法是降低在云中构建实时应用程序的复杂性和成本。
当我们在 2021 年初开始构建 RisingWave 时,我们是用 C 编写的。创始团队由多位具有 10 年以上相关经验的资深 C 工程师组成。因此,使用 C 是一个明智的决定。最初几个月的发展似乎很顺利。我们正全力打造新时代最令人难以置信的数据库,梦想着 RisingWave 如何撼动现代数据技术栈。我们正在寻求更高的效率。
但随着越来越多的工程师加入我们,C 的一些缺点开始困扰我们:不可读的编码风格、内存泄漏、分段错误等等。我们开始质疑自己:C 是我们编写新数据库系统的正确语言吗?经过大约七个月的开发,接下来是整整一个月的辩论。最后,我们做出了从 C 迁移到 Rust 的艰难决定。
更多请看原文:https://singularity-data.com/blog/building-a-cloud-database-from-scratch-why-we-moved-from-cpp-to-rust/
使用 GitHub Actions 测试和构建你的 Rust 项目
测试并不意味着每次编写代码时都要手动运行。这会浪费你宝贵的时间。事实上,Rust 需要(按设计)较长的时间来编译。每天在你自己的机器上运行多次测试会分散你的注意力。
相反,测试应该从 CI(持续集成)运行。CI 系统是是配置的 pipeline,将在你每次推送代码时运行你的测试。现在几乎所有的代码平台(GitHub、GitLab、sourcehut...)都提供了内置的 CI。你可以在此处找到 Rust 项目的 CI 工作流示例:https://github.com/skerkour/phaser/tree/main/.github/workflows
更多请看原文:https://kerkour.com/rust-github-actions-ci-cd
Polars - 闪电般快速、富有表现力的 dataframes
Polars 是一个为 Python 和 Rust 提供内存 dataframes 的开源项目。尽管它很年轻(它的第一次提交是在仅仅两年前),但由于其“闪电般”的性能和 API 的表现力,它已经获得了很多人气。
作者写了系列博文介绍了 Polars 和 Python 的 Pandas 的对比,更多请看:https://www.orchest.io/blog/the-great-python-dataframe-showdown-part-3-lightning-fast-queries-with-polars
Rust 程序使用 Docker 教程
在本教程中,我们将研究几种不同的方法,这些方法可以有效地将 Rust 应用程序 docker 化并将它们作为容器运行。
这些天我正在努力学习 Rust 并扩展我的技能,因此,我将写更多基于 Rust 的文章作为帮助自己学习的方法,并希望帮助其他人可以一起参与进来。
更对请看原文:https://tutorialedge.net/rust/rust-docker-tutorial/
From 日报小组 @Jancd