Может ли Erlang взаимодействовать с Go, как это происходит с C (например, NIF)?
У меня есть C NIF в моем проекте Erlang, у которого есть ограничения, из-за библиотек, на которые он опирается (нестабильные библиотеки или библиотеки, которые мне нужны, которые не существуют). Я думаю, что я могу делать то, что хочу, в Go. Может ли Erlang взаимодействовать с Go таким образом?
1 ответ
Обобщая вышеприведенные комментарии в ответ:
- Там нет такого понятия, как простой Go NIF
- Стандартный подход Эрланга к необходимости делать иностранные вызовы умеренного веса - это написать драйвер порта. В этом ответе есть пример вызова Go из Erlang.
- Более тяжелым решением является реализация интерфейса распределения и создание целого стороннего узла. Для этого есть код, который может быть интересным.
- Если вы действительно хотите создать Go NIF, вам нужно написать интерфейс C для Go, а затем назвать этот интерфейс C как NIF.