Java-реализация Apache Dubbo — RPC- и микросервисного фреймворка для связи между сервисами, обнаружения сервисов и управления трафиком.
sogou/workflow
C++11-фреймворк для параллельных вычислений и асинхронной работы с сетью, используемый в серверных сервисах Sogou для построения DAG-сценариев задач.
- Звёзды
- 14,423
- Форки
- 2,551
- Открытые issues
- 27
- Последний коммит
- 3 дня назад
Что это?
Sogou C++ Workflow — это C++-движок для серверных сервисов, который объединяет асинхронную работу с сетью и параллельные вычисления. Задачи можно объединять в последовательные и параллельные цепочки, а также в произвольные структуры DAG, чтобы сетевые запросы, вычислительные задачи и файловый ввод-вывод выполнялись в рамках одного сценария.
В состав фреймворка входят асинхронные клиенты для HTTP, Redis, MySQL (включая MariaDB и TiDB) и Kafka, а также API HTTP-сервера, который можно запустить всего несколькими строками кода. Кроме того, поддерживаются пользовательские протоколы для создания собственных клиентов, серверов и RPC-систем, а также управление сервисами и балансировка нагрузки в микросервисных системах.
Проект рассчитан на Linux, macOS, Windows (через отдельную ветку с использованием IOCP) и Android. Для master-ветки требуются C++11 и OpenSSL 1.1 или более поздней версии; зависимости от boost и asio нет. Для протокола Kafka дополнительно нужны lz4, zstd и snappy.
Ключевые возможности
- 01Позволяет строить последовательные и параллельные цепочки задач, а также произвольные графы DAG.
- 02Содержит асинхронные клиенты для HTTP, Redis, MySQL и Kafka.
- 03Позволяет создавать HTTP-серверы с помощью небольшого фрагмента кода.
- 04Поддерживает пользовательские протоколы для собственных клиентов, серверов и RPC.
- 05Позволяет выполнять сетевые задачи, вычисления и файловый ввод-вывод в рамках одного сценария.
- 06Предоставляет средства управления сервисами и балансировки нагрузки.
Сценарии использования
- Создание высоконагруженных серверных сервисов, сочетающих сетевые вызовы и задачи с интенсивными вычислениями на CPU.
- Оркестрация нескольких асинхронных вызовов API или баз данных с учётом зависимостей между ними.
- Создание собственных RPC-систем на основе пользовательского протокола.
- Разработка компонентов микросервисов на C++ со встроенной балансировкой нагрузки.
Быстрый старт
- 1
Клонируйте репозиторий
git clone https://github.com/sogou/workflow - 2
Перейдите в каталог проекта и соберите библиотеку
cd workflow make - 3
Соберите примеры из руководства
cd tutorial make
Что важно знать
- Для ветки master требуется OpenSSL версии 1.1 или выше, если не использовать ветку nossl.
- Для поддержки Kafka необходимо установить дополнительные библиотеки сжатия (lz4, zstd, snappy).
- Поддержка Windows находится в отдельной ветке, а не в основной кодовой базе.
В подборках
Темы
Частые вопросы
- Что такое workflow?
- C++11-фреймворк для параллельных вычислений и асинхронной работы с сетью, используемый в серверных сервисах Sogou для построения DAG-сценариев задач. Sogou C++ Workflow — это C++-движок для серверных сервисов, который объединяет асинхронную работу с сетью и параллельные вычисления. Задачи можно объединять в последовательные и параллельные цепочки, а также в произвольные структуры DAG, чтобы сетевые запросы, вычислительные задачи и файловый ввод-вывод выполнялись в рамках одного сценария.
- workflow можно использовать бесплатно? Какая у него лицензия?
- workflow распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- workflow всё ещё поддерживается?
- Активно поддерживается. Последний коммит в workflow — 22 окт. 2026 г..
- Для чего можно использовать workflow?
- Создание высоконагруженных серверных сервисов, сочетающих сетевые вызовы и задачи с интенсивными вычислениями на CPU. Оркестрация нескольких асинхронных вызовов API или баз данных с учётом зависимостей между ними. Создание собственных RPC-систем на основе пользовательского протокола. Разработка компонентов микросервисов на C++ со встроенной балансировкой нагрузки.
- Как установить workflow?
- Клонируйте репозиторий: git clone https://github.com/sogou/workflow Перейдите в каталог проекта и соберите библиотеку: cd workflow make Соберите примеры из руководства: cd tutorial make
- Где скачать workflow?
- Исходный код и инструкции по установке — на GitHub: https://github.com/sogou/workflow
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Асинхронный Kotlin-фреймворк от JetBrains для создания микросервисов, веб-приложений и HTTP API.
Быстрый микрофреймворк на C++ в стиле Flask для создания HTTP- и WebSocket-сервисов: header-only и простой в использовании.
Лёгкая базовая библиотека на C++: корутины в стиле goroutine, сетевые компоненты, логирование, разбор флагов, JSON, модульное тестирование и бенчмарки.
Небольшое дополнение к библиотеке Python requests для асинхронной отправки HTTP-запросов с помощью concurrent.futures.
Открытая service mesh-платформа, которая добавляет микросервисам управление трафиком, безопасность и наблюдаемость с минимальными изменениями кода или вовсе без них.