Интеграция WebAssembly в Tarantool: новый уровень расширяемости и переносимости

Базы данных и системы хранения

Бэкенд / другое
Tarantool
Lua
Расширение кругозора

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

Архитекторы слоя данных, разработчики СУБД.

Тезисы

WASM Component Model – это современный стандарт модульности и межъязыкового взаимодействия, который позволяет безопасно и эффективно исполнять код на любом языке (Python, Go, Rust, C и др.) как изолированные компоненты прямо внутри Tarantool.
Ключевым элементом архитектуры выступают WIT-интерфейсы (WebAssembly Interface Types). С их помощью можно декларативно описать API Tarantool, реализовать его один раз на нужном языке и автоматически получить типобезопасный, прямой доступ к функциям Tarantool (например, box.space, index, sequence, error) из всех языков, поддерживающих компонентную модель — без необходимости писать FFI-обёртки или коннекторы вручную.
Каждый WASM-компонент может экспортировать свои функции, которые доступны для вызова напрямую из Lua с помощью разработанной библиотеки. Это позволяет писать расширяемые плагины и бизнес-логику на любом удобном языке, интегрируя её в Tarantool наравне с Lua-кодом. Например, вместо сложной реализации gRPC-клиента на Lua, можно быстро написать WASM-компонент на Python или Rust и загрузить его в Tarantool без лишних зависимостей.
Таким образом, Tarantool превращается в модульную платформу с поддержкой компонентной модели, способную безопасно интегрировать и переиспользовать код на разных языках, облегчать масштабирование и ускорять разработку в системах с высокими нагрузками.

Максим Тюшев

VK, VK Tech, Tarantool

Занимается развитием поддержки WebAssembly (WASM) в Tarantool и созданием SDK для создания и встраивания WASM модулей на различных языках. Интересуется архитектурой распределённых и мультиагентных систем, имитационным моделированием, графовыми базами данных и методами маршрутизации в сетях специального назначения.

Видео

Другие доклады секции

Базы данных и системы хранения