Repolode
svix

svix/svix-webhooks

Сервис отправки вебхуков с открытым исходным кодом, написанный на Rust: он отвечает за доставку, повторные попытки и подпись, чтобы разработчики могли отправлять вебхуки одним вызовом API.

Open source альтернатива:Svix Cloud

Звёзды
3,475
Форки
299
Открытые issues
64
Последний коммит
20 часов назад

Что это?

Svix — сервис вебхуков для команд, которым нужно отправлять вебхуки своим клиентам. Разработчик вызывает API один раз, чтобы опубликовать событие, а сервис доставляет его на каждый подписанный endpoint, повторяет попытки, подписывает payload и отслеживает статус доставки.

Сервер написан на Rust и запускается как отдельный бинарный файл или Docker-контейнер. Для хранения событий требуется PostgreSQL, а для очереди задач и кеша можно использовать Redis или другие бэкенды очередей. Настройки задаются в TOML-файле или через переменные окружения. Поддерживаются симметричные схемы подписи (в стиле HMAC, с секретами для каждого endpoint) и асимметричные подписи ed25519; по умолчанию используется симметричная схема. Задачи, исчерпавшие число повторных попыток, попадают в dead letter queue, откуда их можно повторно запустить через admin endpoint.

Клиентские библиотеки доступны для Go, Python, TypeScript/JavaScript, Java, Kotlin, Ruby, C#, Rust и PHP. Также есть Terraform provider и CLI, распространяемый через npm. В репозитории представлены реализация DLQ на Redis и опциональный экспорт трейсов, метрик и логов через OpenTelemetry.

Ключевые возможности

  • 01Отправляет вебхуки одним вызовом API со стороны издателя.
  • 02Повторяет попытки доставки и отслеживает статус для каждого endpoint.
  • 03По умолчанию подписывает payload симметричными ключами; также поддерживаются асимметричные подписи ed25519.
  • 04Поддерживает PostgreSQL для хранения данных и Redis для очереди задач.
  • 05Предоставляет dead letter queue и admin endpoint для повторного запуска задач, завершившихся ошибкой.
  • 06Экспортирует трейсы, метрики и логи через OpenTelemetry.

Сценарии использования

  • Добавление исходящих уведомлений через вебхуки в SaaS-продукт для интеграций с клиентами.
  • Замена самописного диспетчера вебхуков, которому нужны повторные попытки и подпись.
  • Самостоятельное развертывание конвейера доставки вебхуков с PostgreSQL и Redis.
  • Отправка уведомлений о событиях из бэкенда с помощью одной из предоставленных клиентских библиотек.

Быстрый старт

  1. 1

    Попробуйте Svix CLI без установки

    npx svix-cli --help
  2. 2

    Перейдите в каталог server в репозитории

    cd server
  3. 3

    Запустите сервер с помощью Docker Compose — он также запустит Redis и PostgreSQL

    docker compose up

Что важно знать

  • Для сервера нужна база данных PostgreSQL. Redis необязателен, но рекомендуется для очереди задач.
  • Для Redis нужно настроить сохранение данных и политику eviction, которая не вытесняет ключи. Это усложняет самостоятельный хостинг.

Темы

Частые вопросы

Что такое svix-webhooks?
Сервис отправки вебхуков с открытым исходным кодом, написанный на Rust: он отвечает за доставку, повторные попытки и подпись, чтобы разработчики могли отправлять вебхуки одним вызовом API. Svix — сервис вебхуков для команд, которым нужно отправлять вебхуки своим клиентам. Разработчик вызывает API один раз, чтобы опубликовать событие, а сервис доставляет его на каждый подписанный endpoint, повторяет попытки, подписывает payload и отслеживает статус доставки.
svix-webhooks можно использовать бесплатно? Какая у него лицензия?
svix-webhooks распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
svix-webhooks всё ещё поддерживается?
Активно поддерживается. Последний коммит в svix-webhooks — 6 нояб. 2026 г..
Для чего можно использовать svix-webhooks?
Добавление исходящих уведомлений через вебхуки в SaaS-продукт для интеграций с клиентами. Замена самописного диспетчера вебхуков, которому нужны повторные попытки и подпись. Самостоятельное развертывание конвейера доставки вебхуков с PostgreSQL и Redis. Отправка уведомлений о событиях из бэкенда с помощью одной из предоставленных клиентских библиотек.
Как установить svix-webhooks?
Попробуйте Svix CLI без установки: npx svix-cli --help Перейдите в каталог server в репозитории: cd server Запустите сервер с помощью Docker Compose — он также запустит Redis и PostgreSQL: docker compose up
Где скачать svix-webhooks?
Исходный код и инструкции по установке — на GitHub: https://github.com/svix/svix-webhooks

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Надёжный движок workflow для запуска пошаговых функций, фоновых задач и AI-workflow на serverless-платформах, серверах и edge-инфраструктуре — с повторами и управлением потоком выполнения.

6 тыс.+19 за неделю390GoOtherОбновлён 19 часов назад

Библиотека на Go для создания событийно-ориентированных приложений с единым интерфейсом Publisher/Subscriber для Kafka, RabbitMQ, NATS, SQL и других систем.

Бэкенд и API#event-driven#messaging#pub-sub
9,9 тыс.+12 за неделю514GoMITОбновлён 10 дней назад