< 返回版块

mook 发表于 2020-11-11 22:49

Tags:rust, 日报

「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

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页