Full-featured high-performance event loop loosely modelled after libevent

Overview
libev is a high-performance event loop/event model with lots of features.
(see benchmark at http://libev.schmorp.de/bench.html)


ABOUT

   Homepage: http://software.schmorp.de/pkg/libev
   Mailinglist: [email protected]
                http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev
   Library Documentation: http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod

   Libev is modelled (very losely) after libevent and the Event perl
   module, but is faster, scales better and is more correct, and also more
   featureful. And also smaller. Yay.

   Some of the specialties of libev not commonly found elsewhere are:
   
   - extensive and detailed, readable documentation (not doxygen garbage).
   - fully supports fork, can detect fork in various ways and automatically
     re-arms kernel mechanisms that do not support fork.
   - highly optimised select, poll, epoll, kqueue and event ports backends.
   - filesystem object (path) watching (with optional linux inotify support).
   - wallclock-based times (using absolute time, cron-like).
   - relative timers/timeouts (handle time jumps).
   - fast intra-thread communication between multiple
     event loops (with optional fast linux eventfd backend).
   - extremely easy to embed (fully documented, no dependencies,
     autoconf supported but optional).
   - very small codebase, no bloated library, simple code.
   - fully extensible by being able to plug into the event loop,
     integrate other event loops, integrate other event loop users.
   - very little memory use (small watchers, small event loop data).
   - optional C++ interface allowing method and function callbacks
     at no extra memory or runtime overhead.
   - optional Perl interface with similar characteristics (capable
     of running Glib/Gtk2 on libev).
   - support for other languages (multiple C++ interfaces, D, Ruby,
     Python) available from third-parties.

   Examples of programs that embed libev: the EV perl module, node.js,
   auditd, rxvt-unicode, gvpe (GNU Virtual Private Ethernet), the
   Deliantra MMORPG server (http://www.deliantra.net/), Rubinius (a
   next-generation Ruby VM), the Ebb web server, the Rev event toolkit.


CONTRIBUTORS

   libev was written and designed by Marc Lehmann and Emanuele Giaquinta.

   The following people sent in patches or made other noteworthy
   contributions to the design (for minor patches, see the Changes
   file. If I forgot to include you, please shout at me, it was an
   accident):

   W.C.A. Wijngaards
   Christopher Layne
   Chris Brody

You might also like...
Pipy is a tiny, high performance, highly stable, programmable proxy written in C++

Pipy is a tiny, high performance, highly stable, programmable proxy. Written in C++, built on top of Asio asynchronous I/O library, Pipy is extremely lightweight and fast, making it one of the best choices for service mesh sidecars.

High performance in-kernel WireGuard implementation for Windows

WireGuard for the NT Kernel High performance in-kernel WireGuard implementation for Windows WireGuardNT is an implementation of WireGuard, for the NT

Brynet - Header Only Cross platform high performance TCP network library using C++ 11.
Brynet - Header Only Cross platform high performance TCP network library using C++ 11.

Brynet Header Only Cross platform high performance TCP network library using C++ 11. Build status Windows : Linux/MacOS : Features Header only Cross p

High-performance Fortran program to calculate polarizability and inverse dielectric response function.

DielectricKit First-principles HPC toolkit for simulating dielectric responses Introduction DielectricKit is a high-performance computing toolkit to c

A headers only high performance C++ middleware framework/lib. See README for details.

# README # hmbdc is an open source headers only C++ framework and library built on top of various real-world tested lockfree algorithms that facilit

High performance server-side application framework

Seastar Introduction SeaStar is an event-driven framework allowing you to write non-blocking, asynchronous code in a relatively straightforward manner

A cross-platform network learning demos. Like high-performance http server

Network-Learn A cross-platform network learning demos (toys). And I try not to use 3rd-party libraries. Welcome to try it out and leave your comments.

A high-performance and easy-to-use C++ network library.

pine A high-performance and easy-to-use C++ network library. Now this is just a toy library for education purpose, do not use in production. example A

Cross-platform, efficient, customizable, and robust asynchronous HTTP/WebSocket server C++14 library with the right balance between performance and ease of use

What Is RESTinio? RESTinio is a header-only C++14 library that gives you an embedded HTTP/Websocket server. It is based on standalone version of ASIO

Comments
  • Add a function to get the backend FD

    Add a function to get the backend FD

    This is useful to embed libev into a another separate event library.

    libuv has this for instance: http://docs.libuv.org/en/v1.x/loop.html#c.uv_backend_fd

    opened by emersion 0
  • Fix usage with C++17

    Fix usage with C++17

    When using with C++17 I got the following error: ev++.h:355:46: error: ISO C++1z does not allow dynamic exception specifications dynamic_loop (unsigned int flags = AUTO) throw (bad_loop)

    This patch fixes the error by replacing throw (bad_loop) with noexcept(false).

    opened by granthenke 0
  • Libev error on windows

    Libev error on windows

    I used libev in my project in windows but I git this error:

    "libev: only socket fds supported in this configuration", ioctlsocket (handle, FIONREAD, &arg) == 0 Please help me with the problem.

    opened by foroughmajidi 0
  • udp fd write event

    udp fd write event

    Hi,I have a doubt,Usually the udp connection is always writable,but If I add the udp connection write event to epoll via ev_io_start, then when can trigger a writable event ?

    opened by zuobeixing 2
Owner
Paul Bohm
Network Economist
Paul Bohm
KBMS is a C++11 high performance network framework based on libevent.

KBMS is a C++11 high performance network framework based on libevent. It is light and easy to deploy. At present, it mainly supports HTTP protocol.

Ke Technologies 29 Sep 13, 2022
Event loop friendly C++ actor micro-framework

Rotor rotor is event loop friendly C++ actor micro framework, github gitee features minimalistic loop agnostic core erlang-like hierarchical superviso

Ivan Baidakou 231 Oct 27, 2022
Native C++ coroutines for libevent

libevent-async libevent-async is a C++ wrapper around the libevent API. It wraps commonly-used objects in classes and provides coroutine support for m

Martin Michelsen 2 Jan 8, 2022
Chromium fork for linux named after radioactive element No. 90

Thorium Chromium fork for linux named after radioactive element No. 90 Always built with latest x64 tip-o-tree "Trunk" build of chromium \ Intended to

Alexander David Frick 242 Nov 26, 2022
Chromium fork for windows named after radioactive element No. 90

Chromium fork for windows named after radioactive element No. 90

Alexander David Frick 49 Nov 15, 2022
Event-driven network library for multi-threaded Linux server in C++11

Muduo is a multithreaded C++ network library based on the reactor pattern. http://github.com/chenshuo/muduo Copyright (c) 2010, Shuo Chen. All righ

Shuo Chen 12.3k Nov 27, 2022
Header-only, event based, tiny and easy to use libuv wrapper in modern C++ - now available as also shared/static library!

Do you have a question that doesn't require you to open an issue? Join the gitter channel. If you use uvw and you want to say thanks or support the pr

Michele Caini 1.5k Nov 28, 2022
A modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols.

evpp Introduction 中文说明 evpp is a modern C++ network library for developing high performance network services using TCP/UDP/HTTP protocols. evpp provid

Qihoo 360 3.1k Nov 29, 2022
BingBing 60 Nov 4, 2022
GNUWeebBot - High-performance bot Telegram, running on Linux environment.

High-performance bot Telegram, running on Linux environment, written in C. Core Features Event Debug Event Logger Modules Telegram debug info.

GNU/Weeb 11 May 8, 2022