Существуют различные языки обмена - json, ect - которые обеспечивают возможность быстрого и надежного экспорта и анализа данных в общий формат. Это благом между языками, и для него существует Piqi, который в основном генерирует разборные форматы обмена для любого типа, который вы определяете; он автоматизирует процесс написания кода котла (записывает функции, которые читаются в некоторой информации об обмене и создает экземпляр некоторого произвольного типа). В принципе, лучшим вариантом на сегодняшний день является протокол буферов, и я абсолютно хочу, если я иду по маршруту ocaml-rpc, использовать буферы протокола.Как лучше всего открыть библиотеку ocaml на других языках?
Было бы неплохо, если бы был какой-то декларативный шаблон для управления экспозицией функции, так что библиотеку ocaml можно было бы получить через некоторую среду (например, RPC или сопоставить функцию с URL-адресом с кодировкой для аргументов).
Представьте, что вы предлагаете библиотеку как услугу; где вы не хотите или не можете создавать фактические привязки между каждой отдельной парой языков. Но серверы и синтаксический анализ данных уже были написаны ... так что не было бы какого-то способа интегрировать эти два, и просто указать, какие функции должны быть раскрыты и где/как?
Наконец, мне кажется, что протокольные буферы - это механизм, с помощью которого вы можете быстро кодировать/декодировать данные, но не транспортный механизм ... есть ли какая-то спецификация ocaml-RPC или некоторая ocaml-библиотека RPC? Разве не существуют различные протоколы RPC (и ergo, если я попытаюсь указать два языка, используя протоколы diff друг на друга, добиться отказа)? Кроме того, серверный механизм, который ожидает и принимает вызовы RPC, является (возможно) другим модулем (?)
Как это достичь?
Мне нужен какой-либо другой язык для доступа к службе ocaml, поэтому я упомянул REST, в частности, я говорил о способах сделать мою библиотеку доступной по сети самым простым способом. –
@AdamMiller, я изменил свой ответ, так как теперь я понимаю ваши требования. Надеюсь, это поможет вам. – ivg
Ah man, bap 1.x? Я хотел помочь и освободить свой код в каждом из piqi и bap для правильной модульности, но я уже использовал piqi для предоставления бэка. Теперь вопрос освобождения его для других. Есть ли способ помочь? –