Об этом проекте
Seastar — это событийно-ориентированный фреймворк для написания неблокирующего асинхронного серверного кода на C++. Он основан на futures и promises, что позволяет разработчикам выражать асинхронную логику относительно простым способом после понимания модели.
Сборка: зависимости можно установить с помощью предоставленного скрипта install-dependencies.sh, затем настроить с помощью configure.py (обёртка над CMake) и скомпилировать с помощью ninja. Отсутствующие зависимости можно получить локально, используя опцию --cook. Режимы сборки соответствуют типам сборки CMake: debug (Debug, ASAN/UBSAN, системный аллокатор, все проверки), release (RelWithDebInfo, -O3, аллокатор Seastar, утверждения), dev (пользовательский, -O1, без отладочной информации) и sanitize (пользовательский, -Os, ASAN/UBSAN). В README отмечается, что Seastar чувствителен к аллокаторам и оптимизациям, при этом release значительно быстрее, чем dev, sanitize и debug.
Использование: Seastar можно использовать напрямую из каталога сборки или после установки, через pkg-config или CMake с пакетом Seastar. Он поддерживает как C++23, так и C++26, по умолчанию используя последний стандарт, поддерживаемый компилятором, который можно выбрать с помощью --c++-standard. Существуют инструкции по сборке на основе Docker, а использование DPDK является опциональным.
Возможности: Seastar включает собственный пользовательский TCP/IP-стек для повышения производительности. Рекомендуемое оборудование включает многоядерные процессоры/NUMA, быстрые сетевые карты (рекомендуются 10G или 40G, с множеством аппаратных очередей на каждый CPU), SSD с высокой производительностью IOPS и несколько клиентских машин для генерации нагрузки.
Ресурсы: предоставлены мини-учебник и полный учебник, а также веб-документация, список рассылки для разработчиков, обсуждения на GitHub и трекер проблем.
Проекты, использующие Seastar, включают cpv-cql-driver, cpv-framework, Redpanda, Scylla, smf и Ceph Crimson.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.