# libevent/libevent

**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/libevent-libevent).**

11,834 stars · 3,460 forks · C · other

## Links

- GitHub: https://github.com/libevent/libevent
- Homepage: https://libevent.org
- awesome-repositories: https://awesome-repositories.com/repository/libevent-libevent.md

## Topics

`async` `c` `cross-platform` `networking`

## Description

Libevent is a cross-platform library that provides a mechanism for executing callback functions when specific events occur on file descriptors, signals, or timers. It functions as a network event loop framework, enabling the development of applications that manage concurrent network connections and non-blocking input and output operations within a single execution context.

The library distinguishes itself by providing a portable abstraction layer that automatically selects the most efficient system-level event notification mechanism available on the host operating system. It includes thread-safe primitives and synchronization tools, allowing event-driven code to operate reliably across multiple concurrent threads.

The project covers a broad range of capabilities for asynchronous programming, including buffered data management, asynchronous domain name resolution, and remote procedure call support. It also provides an embedded web server toolkit, allowing developers to integrate lightweight HTTP server functionality directly into custom applications without external infrastructure dependencies.

The library supports runtime configuration for memory allocation, debugging modes, and thread safety settings to accommodate specific performance and stability requirements.

## Tags

### Networking & Communication

- [Asynchronous Networking](https://awesome-repositories.com/f/networking-communication/asynchronous-networking.md) — Handles thousands of simultaneous network connections without blocking the main execution thread.
- [Stream Processing](https://awesome-repositories.com/f/networking-communication/stream-processing.md) — Handles large volumes of network input and output through managed buffers to ensure efficient data flow.

### Programming Languages & Runtimes

- [Asynchronous Event Loops](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/asynchronous-event-loops.md) — Coordinates callback execution triggered by network activity, timers, or signals within a non-blocking execution context.
- [Event Loops](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/execution-models/multi-threaded-execution/event-loops.md) — Manages concurrent network connections and non-blocking input and output operations within a single execution context. ([source](https://libevent.org/doc))
- [Timer Schedulers](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/timer-schedulers.md) — Maintains a priority queue of expiration times to execute callback functions precisely after a specified duration.
- [Multi-threaded Execution](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/execution-models/multi-threaded-execution.md) — Provides thread-safe primitives and synchronization tools to ensure event-driven code operates reliably across multiple concurrent threads. ([source](https://libevent.org/doc))

### Software Engineering & Architecture

- [Asynchronous Event Notification Libraries](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-event-dispatchers/asynchronous-event-notification-libraries.md) — Provides a mechanism for executing callback functions when specific events occur on file descriptors or timers.
- [Asynchronous Schedulers](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/asynchronous-schedulers.md) — Triggers functions based on timers, system signals, or file descriptor readiness in real time.
- [Thread-Safe Dispatchers](https://awesome-repositories.com/f/software-engineering-architecture/background-thread-dispatchers/thread-safe-dispatchers.md) — Employs synchronization primitives to allow event-driven code to operate reliably and concurrently across multiple execution threads.

### System Administration & Monitoring

- [Event-Driven I/O](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/networking/connection-lifecycle-management/parallel-network-i-o/event-driven-i-o.md) — Implements a high-performance, cross-platform event-driven I/O loop for managing concurrent network connections. ([source](https://libevent.org/doc))
- [Asynchronous Resolvers](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/networking/dns-resolution-services/asynchronous-resolvers.md) — Performs domain name lookups without blocking the main execution thread, ensuring consistent performance. ([source](https://libevent.org/doc))

### Operating Systems & Systems Programming

- [Cross-Platform Abstraction Layers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-programming-primitives/system-abstractions/cross-platform-compatibility-layers/cross-platform-abstraction-layers.md) — Provides a portable abstraction layer that handles low-level system event notifications and thread synchronization.
- [Multiplexing Abstractions](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-programming-primitives/system-abstractions/os-specific-integration-modules/multiplexing-abstractions.md) — Automatically selects the most efficient system-level event notification mechanism available on the host operating system.

### Web Development

- [Embedded Web Servers](https://awesome-repositories.com/f/web-development/embedded-web-servers.md) — Integrates lightweight web server functionality directly into custom applications without external infrastructure dependencies. ([source](https://libevent.org/doc))

### Data & Databases

- [Buffered Input Output Managers](https://awesome-repositories.com/f/data-databases/data-buffering/buffered-input-output-managers.md) — Manages network input and output through internal memory buffers that trigger automatic notifications when data is ready. ([source](https://libevent.org/doc))

### User Interface & Experience

- [Cross-Platform Event Notifiers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/event-handling-systems/cross-platform-event-notifiers.md) — Automatically selects the most efficient system-level event handling mechanism available on different operating systems.
