# scylladb/seastar

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/scylladb-seastar).**

9,271 stars · 1,687 forks · C++ · Apache-2.0

## Links

- GitHub: https://github.com/scylladb/seastar
- Homepage: http://seastar.io
- awesome-repositories: https://awesome-repositories.com/repository/scylladb-seastar.md

## Description

Seastar is a C++ server application framework and asynchronous programming library designed for building high-performance, shared-nothing server applications. It functions as a high-performance I/O engine providing direct disk and network access through a shared-nothing framework that partitions data and execution across CPU cores.

The framework distinguishes itself through a thread-per-core architecture that eliminates locking and resource contention by assigning one execution thread to each physical CPU core. It implements a userspace TCP/IP stack and kernel-bypass techniques, integrating with data plane kits to drive network interface cards directly and enable zero-copy networking.

The project covers a broad set of capabilities including asynchronous workflow orchestration via futures and coroutines, cooperative task scheduling with resource isolation, and direct disk I/O using DMA-based APIs. It also provides utilities for TLS network encryption and coordinated graceful service shutdowns.

The project provides containerized build environments and provisioned virtual machines to ensure consistent compilation across different host systems.

## Tags

### Programming Languages & Runtimes

- [High-Performance Server](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/deployment-specific-runtimes/high-performance-server.md) — Provides a high-performance server framework optimized for low-latency network I/O and multi-core throughput.
- [Asynchronous Flow Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/asynchronous-flow-libraries.md) — Provides a C++ library with futures, promises, and coroutines for coordinating asynchronous execution flows.
- [Resource Allocation Groups](https://awesome-repositories.com/f/programming-languages-runtimes/high-concurrency-runtimes/resource-allocation-groups.md) — Allocates CPU and memory resources across scheduling groups to ensure consistent performance and prevent bottlenecks.
- [Asynchronous Programming](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/asynchronous-execution-engines/asynchronous-programming.md) — Implements a comprehensive non-blocking programming model based on futures for high-concurrency task management. ([source](https://github.com/scylladb/seastar/blob/master/README.md))
- [Async](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/language-specific-resources/language-tutorials/c-c-tutorials/object-management/object-lifetime-management/async.md) — Handles object ownership across asynchronous boundaries using move semantics and reference-counted pointers. ([source](https://github.com/scylladb/seastar/blob/master/doc/tutorial.md))

### Software Engineering & Architecture

- [Thread-Per-Core Architectures](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization-patterns/thread-per-core-architectures.md) — Implements a thread-per-core architecture to eliminate locking and maximize total system throughput. ([source](https://github.com/scylladb/seastar/blob/master/doc/tutorial.md))
- [Shared-Nothing Architectures](https://awesome-repositories.com/f/software-engineering-architecture/shared-nothing-architectures.md) — Utilizes a shared-nothing architecture to distribute data and workloads across cores, eliminating lock contention.
- [Asynchronous Task Processors](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-task-processors.md) — Implements non-blocking server logic using futures and coroutines to manage high-concurrency tasks.
- [Future-Based Concurrency Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/future-based-concurrency-frameworks.md) — Provides a concurrency framework based on futures and promises to manage non-blocking task chains.
- [Core-Local Memory Partitioning](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization-patterns/thread-per-core-architectures/core-local-memory-partitioning.md) — Pre-allocates memory blocks per CPU core to ensure local access and prevent cross-core contention. ([source](https://github.com/scylladb/seastar/blob/master/doc/tutorial.md))
- [Cooperative Schedulers](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/asynchronous-schedulers/cooperative-schedulers.md) — Implements a cooperative scheduler where lightweight fibers voluntarily yield control to balance CPU resources.
- [Event-Driven Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/application-frameworks/general-purpose-frameworks/event-driven-frameworks.md) — Utilizes an event-driven framework to maintain application responsiveness without blocking execution threads. ([source](https://github.com/scylladb/seastar#readme))
- [Async Operation Coordinators](https://awesome-repositories.com/f/software-engineering-architecture/async-operation-coordinators.md) — Coordinates deferred computations using futures and promises to decouple event production from consumption. ([source](https://github.com/scylladb/seastar/blob/master/doc/mini-tutorial.md))
- [Fiber Synchronization](https://awesome-repositories.com/f/software-engineering-architecture/concurrency-synchronization-primitives/fiber-synchronization.md) — Coordinates data transfer between producer and consumer fibers using fixed-size buffers and future-based blocking. ([source](https://github.com/scylladb/seastar/blob/master/doc/tutorial.md))
- [Job Continuation Chaining](https://awesome-repositories.com/f/software-engineering-architecture/job-continuation-chaining.md) — Chains non-blocking operations using futures and continuations to prevent thread stalling. ([source](https://github.com/scylladb/seastar/blob/master/doc/tutorial.md))

### Data & Databases

- [DMA-Based Zero-Copy Storage](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage-architectures/zero-copy-memory-mappings/dma-based-zero-copy-storage.md) — Moves data directly between storage devices and application memory using DMA-based APIs for maximum efficiency. ([source](https://github.com/scylladb/seastar/blob/master/doc/tutorial.md))
- [Symmetric Sharding](https://awesome-repositories.com/f/data-databases/sharding-architectures/symmetric-sharding.md) — Mirrors service objects across all CPU cores and manages inter-shard communication through explicit message passing.

### DevOps & Infrastructure

- [Resource Isolation](https://awesome-repositories.com/f/devops-infrastructure/resource-isolation.md) — Assigns tasks to scheduling groups to isolate and control the percentage of CPU time each component receives. ([source](https://github.com/scylladb/seastar/blob/master/doc/tutorial.md))
- [Scheduling Group Isolation](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/task-job-management/task-schedulers/os-scheduling-simulations/task-schedulers/scheduling-group-isolation.md) — Allocates guaranteed CPU time slices to different scheduling groups to ensure system stability and prevent task starvation.
- [Asynchronous Shutdown Coordination](https://awesome-repositories.com/f/devops-infrastructure/graceful-shutdowns/asynchronous-shutdown-coordination.md) — Coordinates graceful service shutdowns by tracking active operations and blocking new requests using gates. ([source](https://github.com/scylladb/seastar/blob/master/doc/tutorial.md))

### Networking & Communication

- [Server Frameworks](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-infrastructure-configuration/network-and-server-infrastructure/server-frameworks.md) — Offers a framework for building high-performance server applications using a thread-per-core architecture.
- [Network Services](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-services.md) — Provides primitives for developing high-throughput servers and clients using common communication protocols. ([source](https://github.com/scylladb/seastar/tree/master/demos))
- [DPDK Integrations](https://awesome-repositories.com/f/networking-communication/network-stacks/dpdk-integrations.md) — Integrates with the Data Plane Development Kit (DPDK) to bypass the kernel stack for increased packet processing speed. ([source](https://github.com/scylladb/seastar/blob/master/doc/building-dpdk.md))
- [Zero-Copy Networking](https://awesome-repositories.com/f/networking-communication/zero-copy-networking.md) — Implements zero-copy data paths to move data between network hardware and application memory without CPU copies.

### Operating Systems & Systems Programming

- [Disk Block I/O](https://awesome-repositories.com/f/operating-systems-systems-programming/disk-block-i-o.md) — Implements low-level block-level disk I/O operations to optimize storage performance. ([source](https://github.com/scylladb/seastar/tree/master/demos))
- [High Performance I/O Engines](https://awesome-repositories.com/f/operating-systems-systems-programming/high-performance-i-o-engines.md) — Provides a high-performance I/O engine for direct disk and network access using zero-copy and DMA-based APIs.
- [NIC Direct Driving](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-acceleration/nic-direct-driving.md) — Communicates directly with network interface cards using data plane kits for faster packet processing. ([source](https://github.com/scylladb/seastar/blob/master/README-DPDK.md))
- [Scheduling Group Isolation](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-resource-management/hardware-resource-allocation/scheduling-group-isolation.md) — Provides scheduling groups to control the percentage of CPU time allocated to different system components. ([source](https://github.com/scylladb/seastar/tree/master/demos))

### Security & Cryptography

- [Userspace Network Stacks](https://awesome-repositories.com/f/security-cryptography/network-isolation/userspace-network-stacks.md) — Implements a userspace network stack to bypass the kernel and reduce packet processing latency.

### Web Development

- [Coroutine Frameworks](https://awesome-repositories.com/f/web-development/server-side-frameworks/kotlin-frameworks/coroutine-frameworks.md) — Manages high-concurrency workloads using lightweight coroutines to execute non-blocking tasks. ([source](https://github.com/scylladb/seastar/tree/master/demos))
- [Async-to-Sync Wrappers](https://awesome-repositories.com/f/web-development/server-side-frameworks/kotlin-frameworks/async-to-sync-wrappers.md) — Simplifies asynchronous logic by allowing futures to be waited upon in a stack-based, synchronous-style environment. ([source](https://github.com/scylladb/seastar/blob/master/doc/tutorial.md))

### Development Tools & Productivity

- [Concurrent Workflow Orchestration](https://awesome-repositories.com/f/development-tools-productivity/parallel-execution/custom-parallel-task-execution/concurrent-workflow-orchestration.md) — Forks execution into concurrent sub-coroutines and joins them upon completion using aggregation primitives. ([source](https://github.com/scylladb/seastar/blob/master/doc/tutorial.md))

### Part of an Awesome List

- [Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/frameworks.md) — Advanced framework for high-performance server-side applications.
