About this project

Seastar is an event-driven framework for writing non-blocking, asynchronous server-side code in C++. It is based on futures and promises, letting developers express asynchronous logic in a relatively straightforward way once the model is understood. Building: dependencies can be installed via the provided install-dependencies.sh script, then configured with configure.py (a wrapper around CMake) and compiled with ninja. Missing dependencies can be fetched locally using the --cook option. Build modes map to CMake build types: debug (Debug, ASAN/UBSAN, system allocator, all checks), release (RelWithDebInfo, -O3, Seastar allocator, asserts), dev (custom, -O1, no debug info), and sanitize (custom, -Os, ASAN/UBSAN). The README notes Seastar is sensitive to allocators and optimizations, with release substantially faster than dev, sanitize and debug. Consumption: Seastar can be used directly from its build directory or after installation, via pkg-config or CMake with the Seastar package. It supports both C++23 and C++26, defaulting to the latest standard supported by the compiler, selectable with --c++-standard. Docker-based build instructions exist, and DPDK use is optional. Features: Seastar includes its own userspace TCP/IP stack for better performance. Recommended hardware includes multicore/NUMA CPUs, fast NICs (10G or 40G suggested, with many hardware queues per CPU), high-IOPS SSDs, and multiple client machines for load generation. Resources: a mini tutorial and a comprehensive tutorial are provided, along with web documentation, a development mailing list, GitHub Discussions, and an issue tracker. Projects using Seastar include cpv-cql-driver, cpv-framework, Redpanda, Scylla, smf, and Ceph Crimson.