Об этом проекте

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.