Convex — реактивная база данных с открытым исходным кодом
Convex — это реактивная база данных с открытым исходным кодом, созданная для упрощения разработки веб-приложений. Она позволяет получать данные и выполнять бизнес-логику с сильной согласованностью, используя чистый TypeScript.
Convex включает в себя базу данных, среду для серверных функций и клиентские библиотеки. Приложения с динамическими обновлениями в реальном времени легко создавать и масштабировать. Подробнее — в документации.
Разработку бэкенда Convex ведёт команда Convex. Мы приветствуем исправления ошибок и обратную связь. Репозиторий синхронизируется с внутренней разработкой в течение нескольких дней.
Быстрый старт
Начните с документации — там есть руководства по началу работы.
Самый простой способ использовать Convex — через облачную платформу (щедрый бесплатный тариф позволяет сосредоточиться на разработке без инфраструктуры). Многие небольшие приложения и pet-проекты работают на бесплатном уровне с нулевой стоимостью и обслуживанием.
Установка
Convex можно запустить самостоятельно двумя способами:
- Docker (рекомендуется) — используйте официальный образ.
- Предварительно собранный бинарник — загрузите последний релиз.
Подробная инструкция: руководство по самостоятельному размещению.
Поддержка сообщества по самостоятельному размещению — в канале #self-hosted в Discord.
Конфигурация
При самостоятельном размещении обязательно измените секреты инстанса и ключ администратора с значений по умолчанию. Используйте флаг --disable-beacon для отключения анонимного телеметрического маяка (содержит случайный идентификатор деплоя, версию миграции базы, git-ревизию и время работы).
Пример кода
// Пример запроса (query) в Convex
export const getTasks = query({
handler: async (ctx) => {
return await ctx.db.query("tasks").collect();
},
});
// Пример мутации (mutation)
export const addTask = mutation({
handler: async (ctx, { text }: { text: string }) => {
await ctx.db.insert("tasks", { text, isCompleted: false });
},
});
Клиентские библиотеки автоматически подписываются на изменения — обновления в реальном времени работают без дополнительного кода.
Структура репозитория
crates/ — Rust-код (основной бинарник, local_backend — сервер приложений поверх Runtime).
npm-packages/ — публичные и внутренние TypeScript-пакеты:
udf-runtime/ — среда выполнения пользовательских функций (запросы и мутации).
udf-tests/ — функции для тестирования слоя изоляции.
system-udfs/ — системные функции (используются, например, CLI).
Сборка из исходников
См. BUILD.md.
Предупреждения
- Convex наиболее протестирован на Linux и macOS. На Windows возможны проблемы — сообщайте о них в
#self-hosted в Discord.
- Самостоятельное размещение включает большинство функций облачной версии (панель управления, CLI), хорошо работает с Neon, Fly.io, Vercel, Netlify, RDS, SQLite, PostgreSQL и другими.
Сообщество и поддержка
Лицензия
Открытый исходный код. Лицензия указана в репозитории.
Комментарии
Комментариев пока нет. Будьте первым.