awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
hnes avatar

hnes/libaco

0
View on GitHub↗
3,688 Stars·404 Forks·C·Apache-2.0·1 Aufruflibaco.org↗

Libaco

libaco is a low-level C library for cooperative multitasking that provides a runtime for managing asymmetric coroutines. It functions as an execution context manager and stack memory allocator, allowing a single process to initialize independent execution units with private stacks and perform manual context switching via yield operations.

The library distinguishes itself through its memory management and stability features, utilizing read-only guard pages at stack boundaries to trigger hardware faults upon stack overflow. It supports both private stack allocation and shared stack pooling to reduce memory overhead, and it provides configurable floating-point state isolation to maintain numerical precision during switches.

The system covers the full lifecycle of cooperative routines, including creation, state switching, and destruction. It includes error handling mechanisms that execute designated protector functions or callbacks when a routine terminates abnormally to ensure system stability and resource cleanup.

Features

  • Cooperative Multitasking - Provides a runtime for cooperative multitasking where routines voluntarily yield control to a scheduler.
  • C Context Switching Libraries - Provides low-level C primitives for rapid switching between execution states and private memory stacks.
  • Execution Context Management - Initializes independent execution units with private stacks and configurable memory regions.
  • Fine-Grained Task Switching - Implements low-level mechanisms for rapidly switching execution contexts between cooperative routines.
  • Context Switching Implementations - Implements the low-level mechanism of swapping CPU execution states between different cooperative tasks.
  • Stack Memory Management - Manages continuous memory regions for execution stacks, utilizing guard pages for overflow prevention.
  • Stack Overflow Protections - Utilizes read-only guard pages at stack boundaries to trigger hardware faults upon stack overflow.
  • Coroutine Lifecycle Management - Manages the full execution cycle of cooperative routines, from initialization to memory reclamation upon destruction.
  • Coroutine Libraries - Provides a low-level C runtime for managing asymmetric coroutines and cooperative multitasking.
  • Coroutines - Provides lightweight cooperative multitasking units that can be paused and resumed.
  • Asymmetric - Implements a control flow where a main coordinator manages the execution and suspension of several worker routines.
  • Coroutine Spawning - Initializes new cooperative execution units with specific entry functions and private stacks.
  • Floating Point State Management - Provides mechanisms for saving and restoring floating point control words to maintain numerical precision during switches.
  • Shared Stack Pools - Supports shared stack pooling to reduce memory overhead across multiple execution units.
  • Embedded Task Schedulers - Creates lightweight execution units suitable for resource-constrained environments requiring efficient task switching.
  • Stack-Copying Context Switches - Manages unit transitions by saving and restoring CPU registers during coroutine context switches.
  • Shared Stack Pooling - Supports shared stack pooling to reduce total system memory overhead while maintaining overflow protection.
  • Abnormal Termination Protectors - Executes a custom protector function when a routine terminates abnormally to ensure resource cleanup.
  • Routine Protector Functions - Executes designated protector functions or callbacks when a routine terminates abnormally to ensure system stability.
  • Windows Environments - Listed in the “Windows Environments” section of the Awesome C awesome list.

Star-Verlauf

Star-Verlauf für hnes/libacoStar-Verlauf für hnes/libaco

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Häufig gestellte Fragen

Was macht hnes/libaco?

libaco is a low-level C library for cooperative multitasking that provides a runtime for managing asymmetric coroutines. It functions as an execution context manager and stack memory allocator, allowing a single process to initialize independent execution units with private stacks and perform manual context switching via yield operations.

Was sind die Hauptfunktionen von hnes/libaco?

Die Hauptfunktionen von hnes/libaco sind: Cooperative Multitasking, C Context Switching Libraries, Execution Context Management, Fine-Grained Task Switching, Context Switching Implementations, Stack Memory Management, Stack Overflow Protections, Coroutine Lifecycle Management.

Welche Open-Source-Alternativen gibt es zu hnes/libaco?

Open-Source-Alternativen zu hnes/libaco sind unter anderem: tencent/libco — libco is a C++ coroutine library and user-space task orchestrator designed for cooperative multitasking and… gevent/gevent — Gevent is a Python coroutine concurrency library and asynchronous task manager designed for high-concurrency I/O… boostorg/boost — Boost is a collection of portable, high-performance source libraries that extend the C++ standard library. It provides… waruqi/tbox — tbox is a multi-platform C standard library and toolkit designed for portable software development. It provides a core… lewissbaker/cppcoro — cppcoro is a C++ coroutine library and concurrency toolkit providing primitives for asynchronous tasks, lazy… easy-swoole/easyswoole — EasySwoole is a high-performance asynchronous PHP framework designed for building event-driven networks and persistent…

Open-Source-Alternativen zu Libaco

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Libaco.
  • tencent/libcoAvatar von Tencent

    Tencent/libco

    8,684Auf GitHub ansehen↗

    libco is a C++ coroutine library and user-space task orchestrator designed for cooperative multitasking and high-concurrency execution. It functions as a high-concurrency network framework and a synchronous-to-asynchronous wrapper that allows blocking system calls and socket functions to run asynchronously without modifying existing business logic. The project utilizes a specialized stack-copying context switching model to support millions of simultaneous TCP connections on a single machine. It includes a high-performance time wheel scheduler for managing asynchronous background jobs and dela

    C++
    Auf GitHub ansehen↗8,684
  • gevent/geventAvatar von gevent

    gevent/gevent

    6,440Auf GitHub ansehen↗

    Gevent is a Python coroutine concurrency library and asynchronous task manager designed for high-concurrency I/O tasks. It provides a cooperative networking framework for building asynchronous TCP, UDP, and HTTP servers, as well as a WSGI web server implementation for hosting web applications. The project is distinguished by its standard library monkey-patching tool, which replaces blocking synchronous functions with cooperative versions to enable asynchronous behavior in third-party code. This allows for a cooperative multitasking workflow where the system yields execution during I/O waits t

    Pythonasynciocoroutinesgreenlet
    Auf GitHub ansehen↗6,440
  • boostorg/boostAvatar von boostorg

    boostorg/boost

    8,493Auf GitHub ansehen↗

    Boost is a collection of portable, high-performance source libraries that extend the C++ standard library. It provides a wide range of reusable components, data structures, and algorithms designed to add capabilities to the base language across different platforms. The project is distinguished by its extensive focus on compile-time template metaprogramming and generic programming. It implements advanced architectural patterns such as policy-based design, concept-based type validation, and the use of SFINAE for conditional template resolution to minimize runtime overhead. The library covers a

    HTML
    Auf GitHub ansehen↗8,493
  • waruqi/tboxAvatar von waruqi

    waruqi/tbox

    5,111Auf GitHub ansehen↗

    tbox is a multi-platform C standard library and toolkit designed for portable software development. It provides a core foundation for low-level system programming through a collection of system primitives, data structures, and memory management tools. The project includes a coroutine framework for cooperative multitasking and asynchronous logic, a data structure library featuring generic containers with a consistent iterator interface, and a memory management toolkit for pool allocation and debugging of heap overflows and leaks. It also provides a network and serialization toolset for handlin

    C
    Auf GitHub ansehen↗5,111
Alle 30 Alternativen zu Libaco anzeigen→