Минимальные инструменты nbind, необходимые для взаимодействия между TypeScript и C ++ - PullRequest
0 голосов
/ 06 февраля 2019

В настоящее время у меня есть веб-приложение (только на стороне клиента), написанное на TypeScript и C ++ с использованием Emscripten .Мне нужно создать экземпляры объектов в TypeScript и передать их в методы C ++.Там объекты довольно простые C ++ классы с POD-типами, std :: string и STL коллекциями.

В настоящее время я использую Protocol Buffers как на C ++, так и на стороне TS, но синтаксис довольно громоздкийи трудности сериализации / десериализации делают код довольно сложным.

Я обнаружил, что nbind лучше подходит для моей проблемы, но я совсем не знаком с Node или его сборкой.философия и инструменты (прошу прощения, если я не использую правильную формулировку).Похоже, что учебник и различные примеры сосредоточены на написании расширений Node (с резервными копиями asm.js, когда не используется native) и полагаются на инструмент сборки gyp.

В настоящее время я не использую Node: я используюКомпилятор TS + browserify для кода JS и cmake с emcc для компиляции wasm в C ++ -> (я просто использую npm для получения google-protobuf в моем проекте)

Мой вопрос: что будет самым простым способом?для меня использовать nbind с TypeScript?Есть ли инструмент, который я могу запустить на своих заголовках, который бы генерировал привязки JavaScript / TypeScript без необходимости использовать "систему" компоновки node-gyp?(с которым я не знаком).Я бы не хотел делать свои сценарии сборки еще более сложными (они уже достаточно плотны по отношению к объему реального кода), но мне сложно действительно понять, что я могу удалить из учебника nbind, когда не нацелен на Node вообще.

Заранее большое спасибо за вашу помощь.

(Я использую Protocol Buffer и я также пробовал FlatBuffers. Я видел embind, но похоже, что это такне поддерживает генерацию файлов TypeScript, и мне бы очень хотелось, чтобы безопасность типов (суть в том, что существует целая куча почти похожих объектов, и я хочу, чтобы ошибки обнаруживались во время сборки.))

...