Об этом проекте
Turso Database — это встраиваемая SQL-база данных, разработанная на Rust и совместимая с SQLite, созданная командой Turso под лицензией MIT. В README она описывается как движок, используемый в производстве, который также работает как виртуальная машина: подобно SQLite, он компилирует SQL в байт-код для VM под названием VDBE и выполняет этот байт-код. Эта архитектура позволяет одному ядру хостить несколько SQL-диалектов, при этом SQLite является основным фронтендом, а PostgreSQL добавлен как экспериментальный фронтенд со своим собственным диалектом и протоколом. Проект позиционирует себя как «LLVM для баз данных» — одно современное ядро с множеством скомпилированных на него фронтендов.
Основные возможности:
- Совместимость с SQLite на уровне диалекта SQL, формата файлов и C API, отслеживание версии SQLite 3.50.4, с документом COMPAT, отслеживающим оставшиеся различия. Существующие файлы баз данных SQLite работают как есть.
- BEGIN CONCURRENT для повышения пропускной способности записи с помощью многоверсионного управления конкурентностью (MVCC).
- Захват изменений данных (CDC) для отслеживания изменений в базе данных в реальном времени.
- Привязки к языкам: Go, JavaScript, Java, .NET, Python, Rust и WebAssembly, с установкой через crates.io, npm, PyPI, Maven Central и Go modules.
- Асинхронный ввод-вывод на Linux через io_uring.
- Кроссплатформенная поддержка: Linux, macOS, Windows и браузеры через WebAssembly.
- Поддержка векторов, включая точный поиск и манипуляции с векторами.
- Улучшенное управление схемой с расширенной поддержкой ALTER и более быстрыми изменениями схемы.
Экспериментальные функции включают совместимость с PostgreSQL для диалекта SQL и протокола, шифрование данных в покое, инкрементальные вычисления с помощью DBSP для обслуживания инкрементальных представлений и подписок на запросы, полнотекстовый поиск на основе библиотеки tantivy и координацию WAL между процессами через сайдкар .tshm. Индексация векторов для приближенного поиска находится в дорожной карте.
Материалы для начала работы включают командную оболочку (tursodb), установленную через скрипт-установщик, сборку из исходного кода с помощью cargo и Docker-таргеты через make. Приведены короткие примеры для Rust, JavaScript, Python, Go, .NET и Java, включая интеграцию JDBC для Java.
CLI также встраивает сервер Model Context Protocol (MCP), запускаемый с флагом --mcp, который позволяет ИИ-ассистентам взаимодействовать с базами данных. В README документировано девять инструментов: open_database, current_database, list_tables, describe_table, execute_query, insert_data, update_data, delete_data и schema_change. Приведены примеры конфигурации для Claude Code, Claude Desktop и Cursor, а также прямое использование JSON-RPC через stdin/stdout.
Надежность и статус: в README указано, что Turso используется в производственных приложениях нескольких организаций и тестируется с помощью инструментов, включая собственный детерминированный симулятор и Antithesis, при этом отмечается, что проект еще не достиг версии 1.0, и некоторые функции являются экспериментальными, рекомендуя независимое резервное копирование до этого момента. Он отличает Turso Database от более раннего форка libSQL, описывая переписывание на Rust как предполагаемое направление, хотя оба работают в производстве. Репозиторий также перечисляет академические публикации и партнеров проекта, принимая вклады под лицензией MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.