Erlang как встроенная система в приложении?
У меня довольно много кода, написанного в Erlang, который я хочу включить в приложения, написанные на Objective-C, например, на iPad. В идеале я хотел бы иметь объект, который инкапсулирует время выполнения Erlang; это можно было бы получить, как стандартная оболочка Erlang, что-то вроде строк:
ErlangRT *runtime = [[ErlangRT alloc] init];
ErlangValue *retval = [runtime execute:@"io:format(\"hello world~n\")"];
Мне все равно, о производительности и т.д. Я могу понять, как это может работать, но поскольку я не слишком много знаю о том, как реализована виртуальная машина Erlang, я не знаю, как легко или сложно это сделать, или если кто-то уже сделал что-то подобное. Я знаю, что существуют другие способы взаимодействия между Objective-C и Erlang, но они, похоже, предполагают независимо установленную систему Erlang на целевой машине. Я бы предпочел, чтобы это было похоже на библиотеку, с которой вы просто связываетесь с приложением.
Итак, мой вопрос: это сравнительно легко сделать, и/или кто-то уже работал над этим?
Ответы
Ответ 1
У нас есть Эрланг, работающий на iPhone (и одобренный для App Store) как часть нашего пакета Apache CouchDB для iOS. Проект Github находится здесь: https://github.com/couchbaselabs/iOS-Couchbase
Мы используем Erlang: https://github.com/couchbaselabs/iErl14
Дополнительная информация о Mobile Couchbase: http://www.couchbase.com/products-and-services/mobile-couchbase
Наслаждайтесь!
Крис
Ответ 2
Похоже, http://sourceforge.net/projects/erlandstaticlib/ - лучший вариант.