【Rust日报】2020-11-11 -「InfluxDB IOx」未来会用 Rust 和 Arrow 构建内核

那年仲夏 提交于 2020-12-20 06:18:08

「InfluxDB IOx」未来会用 Rust 和 Arrow 构建内核

Rust提供了对运行时行为和内存管理的更精细控制。另外,它使并发编程更容易,并且消除了数据争用。
Apache Arrow定义了用于列式数据的内存格式,以及Parquet(一种持久的持久性格式)以及Flight(一种用于“通过网络接口进行大型数据集的高性能传输”的客户端/服务器框架和协议)。另外,Rust的Apache Arrow工具集中还有DataFusion,它是用于Apache Arrow的Rust本机SQL查询引擎。假设我们以DataFusion为核心进行构建,这意味着InfluxDB IOx将支持现成的SQL子集随着DataFusion项目的成熟,通过InfluxData外部的协作者的开发工作,它既可以在InfluxDB IOx中使用,也可以在其他地方使用。
该项目仍处于初期阶段。我们目前尚未生成构建,并且除了 InfluxDB IOx项目README 之外,没有任何文档。该团队是一个由高级工程师组成的小型小组,我们的工作与平台上其余部分的大型工程组织的所有工作并行。我们的目标是在明年初生产开源构建,并在InfluxDB Cloud中以alpha形式提供。
详情 : https://www.influxdata.com/blog/announcing-influxdb-iox/

[linux kernel] 在Rust中编写BPF代码

BPF是一种虚拟机,当Linux系统上发生某些事件时,它允许在内核中运行用户定义的程序。例如,您要监视可疑文件活动,记录网络响应延迟甚至跟踪用户空间应用程序–您可以编写小型BPF程序,请求将它们附加到内核中的正确位置,并实施必要的检测。
BPF VM使用其自己的指令集。您可以直接编写字节码,但是人们通常使用  bpftrace  或编写C代码并使用  BPF编译器集合(BCC)进行编译
从原理上讲,开发BPF程序的过程可以归纳为以下步骤:
  1. 用C编写BPF代码
  2. 编译BPF VM的代码
  3. 编写一个将第2步的输出加载到BPF VM的用户空间组件
  4. 使用BPF API在用户空间组件和BPF代码之间交换数据
RedBPF包括用于实现上述所有步骤(步骤1)除外的API和工具。使用RedBPF,步骤1变为:
  1. 在Rust中编写BPF代码
文中实现了一个简单的http trace, 有兴趣的可以仔细阅读
详情 : https://blog.redsift.com/labs/writing-bpf-code-in-rust/

关于 Rust 的数学运算

昨天有个同学说 rust 没有基础数学运算。emmmm

   
   
今天写小玩具的时候发现标准库都不支持基础数学运算,都要自己造轮子,
三方库里也只有unsafe的linux数学库,愿rust越来越强!
洛佳同学的回复:

   
   
数字运算在类型里面,标准库是有的,是支持的
Attila的灵魂一击:

   
   
说找不到库的试试这个的分类?

https://lib.rs/science/math
点击发现更多科学计算库: https://lib.rs/science/math

最后说一句:多 Google ,几个关键字一拼什么都有了


From 日报小组 冰山上的 mook
社区学习交流平台订阅:
  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区

本文分享自微信公众号 - Rust语言中文社区(rust-china)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!