A cooperative fiber scheduler for Linux with per-CPU scheduler threads, io_uring integration, and topology-aware work-stealing. Fibers are lightweight stackful coroutines that suspend rather than block their OS thread, enabling high concurrency with low overhead. docs/scheduler.md — scheduler loop, context switching, suspension pattern, async IO, sleep cancellation, work-stealing design, and performance benchmarks docs/sync.md — synchronization primitives: FiberFuture, FiberFutex, FiberMutex, FiberSequencer, FiberEvent, FairFiberMutex docs/util.md — utility library: lock-free data structures, TSC timing, memory pool, CPU topology, logging, assertions docs/perf.md — net-perf and file-perf benchmark results and fio comparison docs/coroutines.md — stackless coroutines vs stackful fibers: design differences and performance data src/fibers/tests/ — usage examples: fiber lifecycle, futures, synchronization primitives, async IO src/gdb/fiber.py — GDB extension; load with source src/gdb/fiber.py, then use fiber-list, fiber-savecontext, fiber-restorecontext, fiber-switchcontext CMake >= 3.28 Ninja Clang 21 ccache (optional) Boost headers (libboost-dev) libelf (libelf-dev) — optional, required only for src/profiler; the profiler is silently skipped if absent. GTest, Google Benchmark, libbacktrace, liburing, librseq, libbpf, bpftool, and cxxopts are bundled as submodules under contrib/ and do not need to be installed separately. The two Boost.Context asm sources used for fiber switching are vendored under contrib/fcontext/, and systemtap's USDT headers (<sys/sdt.h> + <sys/sdt-config.h>) under contrib/systemtap-sdt/ (both vendored directly, no submodule). Poco, the AWS SDK, and jemalloc are built on demand via --build-poco, --build-aws, and --build-jemalloc passed to configure. Runtime dependencies for optional benchmarks: nginx (only for http-perf --nginx; the default uses an internal Poco-based server built into the http-perf binary), fio (for fio-perf), and MinIO (for s3-per...
First seen: 2026-05-24 09:50
Last seen: 2026-05-24 19:59