2

我维护了一个用 Rust 编写的大型 repo,其中涉及某些功能,例如与数据库的 I/O,以及使用 Websocket 与其他节点的通信。

现在我需要允许其他人编写 Python 脚本,这些脚本可以使用 DB I/O 和 websocket 的东西,如上所述,它们是用 Rust 编写的。看起来我有两种可能的方法:

  1. 一种方法是将那些 Rust 编写的东西编译到共享库(.soLinux 上的文件)中,然后像Ctypes在 Python 中一样加载它们。
  2. 另一种方法是构建一个用 Rust 编写的“sidecar”,它具有这些 DB 和 Websocket 功能,将 sidecar 作为守护进程运行,并让 Python 脚本与该守护进程通过 IPC(例如,套接字)进行交互。

我觉得每种方法都有优点/缺点。对于第一种方法,处理 Rustffi或 PythonCtypes可能不是很简单。第二种方法在延迟方面可能会有一点开销。

现在我看到越来越多的人采用第二种方法(又名边车模式),而第一种方法听起来更老套。我想在这里发布我的问题,并希望对此发表任何评论!

4

0 回答 0