concurrencykit/ck
FreeConcurrency primitives, safe memory reclamation mechanisms and non-blocking (including lock-free) data structures designed to aid in the research, design and implementation of high performance concurrent systems developed in C99+.
About concurrencykit/ck
Concurrency Kit (ck) is a C99+ library that provides concurrency primitives, safe memory reclamation mechanisms (epoch-based and hazard pointers), and non-blocking (lock-free) data structures. It includes efficient implementations of concurrent arrays, bitmaps, rings, FIFOs, and stacks, with specialized assembly optimizations for architectures including aarch64, arm, ppc, ppc64, riscv64, s390x, sparcv9+, x86, and x86_64. Designed for high-performance concurrent systems, it supports multiple compilers (gcc, clang, icc, etc.) and platforms, and is widely used in research and production environments.
Key Features
Pros & Cons
- Comprehensive collection of lock-free and concurrent primitives in a single library
- Supports both epoch-based reclamation and hazard pointers for memory safety
- Optimized with custom assembly for major architectures, ensuring high performance
- Actively maintained with continuous integration across multiple platforms and compilers
- Open source (free) with a permissive license (MIT, as per GitHub repository)
- Steep learning curve for developers unfamiliar with concurrent programming concepts
- Limited to C99+; no direct support for higher-level languages like C++ or Rust
- Documentation may be sparse for advanced features; relies on source code and academic references
- Not an AI tool; primarily a systems programming library