À propos du projet

Seastar est un framework événementiel pour écrire du code serveur asynchrone non bloquant en C++. Il repose sur les concepts de futures et de promesses, permettant aux développeurs d'exprimer une logique asynchrone de manière relativement simple une fois le modèle compris. Construction : les dépendances peuvent être installées via le script install-dependencies.sh fourni, puis configurées avec configure.py (une surcouche de CMake) et compilées avec ninja. Les dépendances manquantes peuvent être récupérées localement en utilisant l'option --cook. Les modes de compilation correspondent aux types de construction CMake : debug (Debug, ASAN/UBSAN, allocateur système, toutes les vérifications), release (RelWithDebInfo, -O3, allocateur Seastar, assertions), dev (personnalisé, -O1, sans informations de débogage) et sanitize (personnalisé, -Os, ASAN/UBSAN). Le README note que Seastar est sensible aux allocateurs et aux optimisations, la version release étant nettement plus rapide que les versions dev, sanitize et debug. Consommation : Seastar peut être utilisé directement depuis son répertoire de construction ou après installation, via pkg-config ou CMake avec le paquet Seastar. Il prend en charge C++23 et C++26, en choisissant par défaut la norme la plus récente prise en charge par le compilateur, sélectionnable avec --c++-standard. Des instructions de construction basées sur Docker existent, et l'utilisation de DPDK est optionnelle. Fonctionnalités : Seastar inclut sa propre pile TCP en espace utilisateur pour de meilleures performances. Le matériel recommandé comprend des processeurs multicœurs/NUMA, des cartes réseau rapides (10G ou 40G suggérées, avec de nombreuses files d'attente matérielles par processeur), des SSD à haut IOPS et plusieurs machines clientes pour la génération de charge. Ressources : un mini tutoriel et un tutoriel complet sont fournis, ainsi qu'une documentation web, une liste de diffusion de développement, des discussions GitHub et un suivi des problèmes. Les projets utilisant Seastar incluent cpv-cql-driver, cpv-framework, Redpanda, Scylla, smf et Ceph Crimson.