Может ли Erlang взаимодействовать с Go, как это происходит с C (например, NIF)?

У меня есть C NIF в моем проекте Erlang, у которого есть ограничения, из-за библиотек, на которые он опирается (нестабильные библиотеки или библиотеки, которые мне нужны, которые не существуют). Я думаю, что я могу делать то, что хочу, в Go. Может ли Erlang взаимодействовать с Go таким образом?

1 ответ

Обобщая вышеприведенные комментарии в ответ:

  1. Там нет такого понятия, как простой Go NIF
  2. Стандартный подход Эрланга к необходимости делать иностранные вызовы умеренного веса - это написать драйвер порта. В этом ответе есть пример вызова Go из Erlang.
  3. Более тяжелым решением является реализация интерфейса распределения и создание целого стороннего узла. Для этого есть код, который может быть интересным.
  4. Если вы действительно хотите создать Go NIF, вам нужно написать интерфейс C для Go, а затем назвать этот интерфейс C как NIF.
Другие вопросы по тегам