Подтвердить что ты не робот

Как вставить Ruby в С++?

Какой лучший способ вставить Ruby в качестве языка сценариев в С++? Использование ruby.h? SWIG? Что-то другое? Мне нужно разоблачить некоторые объекты С++ для Ruby и интерпретировать интерпретатор Ruby скрипты, которые обращаются к этим объектам. Я не забочусь о расширении Ruby или доступе к нему на С++.

Я нашел эту статью о вложении Ruby в С++, и хотя она очень полезна, она вроде бы старая, и мне было интересно, есть ли любые другие ресурсы по этому вопросу (или реализации с открытым исходным кодом аналогичных движков).

4b9b3361

Ответ 1

swig - это, вероятно, путь... но рубин не слишком хорошо встраивается......

если вы хотите, чтобы язык хорошо вписывался в С++, попробуйте lua

Ответ 2

Rice выглядит очень многообещающим.

Ответ 3

Ruby предоставляет очень полезный файл README.EXT. Он содержит много информации о том, как расширить Ruby и конвертировать между типами C и Ruby.

Существует также выдержка из выбрать топорную книгу который в значительной степени охватывает одно и то же.

В моем случае, когда я добавил скрипт Ruby в свое приложение, я решил не использовать swig, потому что мои потребности были очень простыми, и я не хотел добавлять еще одну зависимость сборки.

Ответ 4

Возможно, вы захотите проверить tinyrb.

Ответ 5

Я работаю над Rarity (https://github.com/Plaristote/Rarity), что делает две вещи:

  • Создает привязки Ruby из описания YML вашего С++ API
  • Позволяет взаимодействовать с Ruby script в большинстве моделей С++.

Я решил много вопросов (обработка исключений, сбор мусора)... Я больше нигде не видел генерации кода, которые использует Rarity, чтобы ваши привязки оживают. Я также не видел никакой другой библиотеки, которая допускает такое легкое преобразование между типами С++ и Ruby.

Я думаю, что Рэрити стоит того! И я был бы рад получить и некоторые отзывы:)!