python - 如何在 Rust 中收集传感器数据并使其在 Python 中可查询/可用?

标签 python rust

<分区>

如何使用 Rust 收集传感器数据的时间序列/流,然后使这些数据从 Python 可用(同时 Rust 继续收集数据)?

Rust 的目标是继续收集数据并允许 Python 调用允许查询/检索此数据的函数。例如过去 5 分钟内的所有观察。

这是否可以在不复制内存的情况下实现(类似于 numpy 数组的 View ),或者在 Python 运行时接收内存时是否必须复制内存?

如果需要复制内存,在 Rust 中执行此操作与在 C 中执行此操作相比,运行时成本如何?与 Rust 相比,C 是否更简单/更容易实现(作为 C 新手,我喜欢 Rust 提供的安全/工具)?

总而言之,我想了解如何:

  • 收集传感器数据并在后台继续在 Rust 中收集
  • 允许从 Python 查询在 Rust 中收集的数据
  • 从Python查询数据时是否需要复制数据,或者是否可以实现类似于numpy的内存 View ?
  • 如果需要复制数据,开销与 C 相比如何?
  • 与 C 相比,Rust 的实现复杂性如何?

最佳答案

你的问题太模糊了,无法正确回答,让我建议你一些方法。

1。使用中间层

您可以使用某种数据库(例如 sqlite、postgresql 等)、文件系统存储(纯文本文件、套接字),甚至可以使用 (JSON) API 构建网络服务器。

根据您要使用的内容,所有内容都有包装箱(纯文本在 std、sqlite、postgres、diesel、hyper、serde 等中)。

这个实现的巧妙之处在于,它是独立于编程语言的,例如,如果您决定以后用 Java 重新编程您的代码(无论出于何种原因 :)),您只需要更改 java 读取代码的方式数据库/套接字/网络服务器。

2。使用 FFI

您可以在 github.com 查看来自 alex 的示例,但请注意您可以在 FFI 中使用的类型,例如整数类型,如 i32、u32、i8、指针、 float ,但像字符串这样的东西可能会变得非常复杂,所以如果你只接受整数,就使用它。

关于python - 如何在 Rust 中收集传感器数据并使其在 Python 中可查询/可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49996216/

相关文章:

python - 在 Python 3.6 中使用 pandas.to_sql 将异国情调(非 ascii)字符写入 Oracle DB

python - 吐血: how to make a scrapy, python,以及Windows 7中可以处理unicode的postgres生态系统

for-loop - 对于反向迭代、for 或 while 循环,哪个更快?

rust - libgcc和Rust系统库中 `__udivti3'的多个定义

rust - 如何从 Rust 中的标准输入读取和取消读取 Unicode 字符?

Python抽象编程

python - plotly fig 对象到 redis

Python 属性解析对于 xml :id 返回 None

rust - 我如何 "collapse"嵌套 `if let` 语句,它们都在其 `else` 子句中运行相同的代码?

assembly - 发布与 Debug模式下局部堆栈变量的代码生成