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.