Sobre el proyecto
Seastar es un framework orientado a eventos para escribir código de servidor asíncrono y no bloqueante en C++. Está basado en futures y promesas, lo que permite a los desarrolladores expresar lógica asíncrona de forma relativamente sencilla una vez que se comprende el modelo.
Compilación: las dependencias pueden instalarse mediante el script install-dependencies.sh incluido; después se configura con configure.py (un envoltorio de CMake) y se compila con ninja. Las dependencias faltantes pueden obtenerse localmente usando la opción --cook. Los modos de compilación corresponden a tipos de compilación de CMake: debug (Debug, ASAN/UBSAN, asignador del sistema, todas las comprobaciones), release (RelWithDebInfo, -O3, asignador de Seastar, aserciones), dev (personalizado, -O1, sin información de depuración) y sanitize (personalizado, -Os, ASAN/UBSAN). El README señala que Seastar es sensible a los asignadores y a las optimizaciones, y que release es sustancialmente más rápido que dev, sanitize y debug.
Consumo: Seastar puede usarse directamente desde su directorio de compilación o tras su instalación, mediante pkg-config o CMake con el paquete Seastar. Soporta tanto C++23 como C++26, usando por defecto el estándar más reciente que soporte el compilador, seleccionable con --c++-standard. Existen instrucciones de compilación con Docker, y el uso de DPDK es opcional.
Características: Seastar incluye su propia pila TCP/IP en espacio de usuario para obtener un mejor rendimiento. El hardware recomendado incluye CPUs multinúcleo/NUMA, NIC rápidas (se sugieren 10G o 40G, con muchas colas de hardware por CPU), SSD de altas IOPS y varias máquinas cliente para generar carga.
Recursos: se proporcionan un minitutorial y un tutorial completo, junto con documentación web, una lista de correo de desarrollo, GitHub Discussions y un rastreador de incidencias.
Entre los proyectos que usan Seastar se incluyen cpv-cql-driver, cpv-framework, Redpanda, Scylla, smf y Ceph Crimson.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.