Ruby Gem родное расширение с Crystal?

Я просто пытаюсь собрать некоторую общую информацию, поскольку я ищу для улучшения производительности ActiveModelSerializer.

Я также никогда ранее не писал собственных расширений, но смотрел на некоторые расширения C и расширения Rust.

Мои вопросы:

  • Это было сделано? (написание родного расширения кристалла в рубиновом драгоценном камне?)
  • Как работает взаимодействие с рубиновыми объектами / структурами в кристалле? (Должен ли быть какой-то вид сортировки или что-то еще для общения между двумя языками?)

2 ответа

Поскольку Ruby API написан на C, для него должна быть возможность создавать привязки Crystal, а затем писать расширения Ruby в Crystal.

Посмотрите на crystalyzed_ruby проект, например: https://github.com/phoffer/crystalized_ruby

Этот вопрос, возможно, задавался миллион раз. Вы можете попытаться сделать это, но помните, что у Crystal есть GC, поэтому на самом деле не имеет особого смысла писать собственные расширения в Crystal. Используйте C или Rust, у которых нет GC.

Другие вопросы по тегам