我正在考虑开始一个新的项目(桌面应用程序)。性能是必须的,我需要快速和可靠的语言,如铁锈。另一方面,我想使用操作系统提供的本地UI工具包,比如SwiftUI。
我对此做了一些研究,但没有发现任何具体的东西。
总之,我想使用SwiftUI作为前端,使用Rust作为后端,具有最高速度的数据通信和最低的延迟。做这件事最好的方法是什么?
注:也许上面的一些解决方案是没有意义的。如果其中一些是错的,请纠正我。
发布于 2021-12-24 10:55:36
我不知道斯威夫特,我以前用C++/C#做过一些IPC。
如果您想要“最高速度的数据通信和最低的延迟”,则除了C之外别无选择。这是非常快的,因为所有的代码都在一个进程中,并且您可以很容易地共享内存,而无需进行任何复制。
我不知道Swift,但是Rust代码可以提供can,它允许从任何支持code的语言中调用。您可以动态链接Rust代码(通过构建DLL/. to,方法是将机箱类型设置为cdylib)或静态链接(通过将机箱类型设置为staticlib)。您可以在这里阅读有关FFI的更多信息:https://doc.rust-lang.org/nomicon/ffi.html
如果您真的不需要“最高速度的数据通信和最低的延迟”(因为您曾经将文件视为选项),您可以考虑使用两个使用OS级别机制进行互操作的不同进程。最常见的方法是管道:
您可以尝试使用此机箱进行以下操作:管道
而且,在Unix上,您可以使用unix域套接字。这与网络套接字非常相似,但速度要快得多。
https://stackoverflow.com/questions/70471279
复制相似问题