Поставщик электронной коммерции Shopify открыл исходный код своего проекта Ruvy, который предоставляет цепочку инструментов, которая принимает код Ruby и создает модуль WebAssembly, который выполняет этот код Ruby.
Shopify считает, что Ruvy может быть полезен более широкому сообществу разработчиков, предоставляя простой способ создания и выполнения простых программ Ruby в среде выполнения WebAssembly. Представленный 18 октября и доступный на GitHub, Ruvy был создан для того, чтобы воспользоваться преимуществами повышения производительности за счет предварительной инициализации виртуальной машины Ruby и файлов Ruby, включенных в сценарий Ruby.
По словам Shopify, Ruvy не требует предоставления аргументов WASI (системный интерфейс WebAssembly) во время выполнения, отметив, что модули Ruvy Wasm требуют примерно на 70% меньше времени для компиляции в собственный код. Ruvy повышает производительность за счет предварительной инициализации виртуальной машины Ruby при сборке модуля Wasm.
Созданный на основе Ruby.wasm, набора портов CRuby для WebAssembly, Ruvy в настоящее время не поставляется с предварительно скомпилированными двоичными файлами, поэтому необходимо установить зависимости сборки, а затем перед использованием Ruvy необходимо скомпилировать. Подробности об установке этих зависимостей можно найти в разделе ReadMe проекта. После сборки Ruvy разработчики могут запустить:
$ cargo run --package=cli ruby_examples/hello_world.rb -o index.wasm $ wasmtime index.wasm Hello world
Файлы Wasm, созданные Ruvy, не требуют пути к файлу в качестве аргумента WASI. По словам Shopify, это способствует совместимости с вычислительными средами, которые нельзя настроить для предоставления дополнительных аргументов WASI для запуска функций, таких как некоторые службы периферийных вычислений.
Дальше читайте это:
- Облачные вычисления больше не являются пустяком
- Что такое генеративный ИИ? Искусственный интеллект, который создает
- Программирование с помощью ИИ: советы и лучшие практики от разработчиков
- Python пытается удалить GIL и повысить параллелизм
- 7 причин, по которым Java по-прежнему хороша
- Война за лицензирование открытого исходного кода окончена