
Компания CocoIndex выпустила первую стабильную версию своего инкрементального ETL-движка, предназначенного для создания ИИ-систем с долговременной памятью и контекстом. Новый инструмент автоматизирует обработку данных и их мгновенную индексацию в векторные базы или графы знаний, что критически важно для продакшн-систем.
Главное нововведение версии v1 — полный отказ от специализированного языка описания пайплайнов (DSL). Теперь разработчики могут использовать обычные асинхронные функции Python, которые вызывают друг друга. Это упрощает интеграцию и ускоряет разработку, сохраняя при этом возможность отслеживать изменения и материализовать целевые состояния через нативное Python-API.
Авторы движка вдохновлялись тезисом Джеффа Дина и Билла Далли, представленным на GTC 2026. Они отмечают, что ИИ-агенты работают примерно в 50 раз быстрее человека, но традиционные инструменты не успевают за таким темпом. Ночные пересборки индексов становятся узким местом — новый движок решает эту проблему, синхронизируя производные данные с источником инкрементально. Он перерабатывает только изменившиеся чанки и перезаписывает лишь изменившиеся строки, что радикально снижает нагрузку на систему.
Помимо отказа от DSL, релиз принёс ещё три ключевых изменения. Во-первых, движок теперь использует систему типов Python напрямую: разработчики могут передавать PIL.Image, pyarrow.Table, torch.Tensor и любые другие классы из импортированных библиотек без дополнительных обёрток или конверсий. Во-вторых, Postgres больше не является обязательной зависимостью — состояние движка теперь хранится в одном локальном файле, хотя Postgres остаётся полноценным таргетом. В-третьих, источники и таргеты можно создавать динамически: допускается монтировать отдельный таргет для каждого тенанта, строить топологию по строкам конфигурационной таблицы или подключать Kafka-топик через фича-флаг.
Ядро движка по-прежнему реализовано на Rust, что обеспечивает высокую производительность при детекции и применении изменений. На уровне Python используется декоратор для подключения функций к системе отслеживания изменений, а также механизм кеширования результатов по хешу аргументов и кода. Это гарантирует, что правка хелпера инвалидирует только тех вызывающих, кто от него реально зависит.
Контракт управляемых таргетов сохранился: разработчик декларирует, как должна выглядеть таблица, граф или директория, а CocoIndex автоматически выполняет все необходимые операции — от create/alter/drop для контейнеров до insert/update/delete для содержимого. При этом движок корректно удаляет осиротевшие объекты при изменении схемы. Такой подход работает одинаково для Postgres, LanceDB, Neo4j, Kafka, S3 и обычных файлов на диске.
Примеры пайплайнов, включая обработку эмбеддингов кода в LanceDB и преобразование PDF в графы знаний из разговоров, доступны в официальном репозитории на GitHub. Движок распространяется под лицензией Apache 2.0, а документация доступна по соответствующей ссылке.


