为了使用Python从Rust程序内部调用函数,应遵循的最佳实践是什么?

时间:2018-07-01 12:07:02

标签: python rust ffi pyo3

我想实现一个由Python UI以及一些Rust数据存储和功能组成的系统。 用户执行python代码,该代码又在子进程中执行Rust程序。 我希望Rust程序在后台运行,等待与Python UI交换变量或函数调用(例如,每次按下按钮时)。

我的障碍是:

  1. 我试图制作一个简单的Rust FFI库,该库可以用Python的ctypes调用,但我不知道该库将如何与在后台运行的已编译rust程序进行通信。

  2. 另一种方法是使用PyO3使用rust制作python模块。但是我再次不明白这将如何与rust程序合作交换数据

1 个答案:

答案 0 :(得分:0)

您的Rust后台进程将需要公开某种RPC机制,例如jsonrpcmsgpack-rpc

然后,任何其他应用程序都可以使用相同的RPC机制调用您的后台进程。例如,对于Python,有jsonrpcmsgpack-rpc的库。