Как лучше всего следовать, чтобы использовать Python для вызова функций из программы Rust? - PullRequest
0 голосов
/ 01 июля 2018

Я хочу реализовать систему, которая состоит из пользовательского интерфейса Python и некоторого хранилища данных Rust и функций. Пользователь выполняет код Python, который, в свою очередь, выполняет программу Rust в подпроцессе. Я хочу, чтобы программа Rust работала в фоновом режиме, ожидая обмена переменными или вызовами функций с пользовательским интерфейсом Python (например, при каждом нажатии кнопки).

Мои препятствия:

  1. Я попытался создать простую библиотеку Rust FFI, которую можно вызывать с помощью ctypes из Python, но я не знаю, как эта библиотека сможет взаимодействовать с откомпилированной программой ржавчины, которая работает в фоновом режиме.

  2. Другой подход заключается в использовании PyO3 для создания модуля Python с использованием ржавчины. Но опять же я не могу понять, как это будет взаимодействовать с программой ржавчины для обмена данными

1 Ответ

0 голосов
/ 02 июля 2018

Ваш фоновый процесс Rust должен предоставить какой-то механизм RPC, такой как jsonrpc или msgpack-rpc .

Тогда любое другое приложение может вызвать ваш фоновый процесс, используя тот же механизм RPC. Например, для Python есть библиотеки для jsonrpc и msgpack-rpc .

...