1
0
Fork 0
mirror of https://github.com/libevent/libevent.git synced 2026-09-19 19:44:29 +00:00
Event notification library
  • C 90.5%
  • CMake 3.8%
  • M4 2.5%
  • Python 2.2%
  • Shell 0.6%
  • Other 0.4%
Find a file
Kevin Bowling d82464a277 test: make bufferevent timeout tests retriable
Timeout callbacks can be delayed beyond the 100 ms tolerance when a
CI runner is descheduled. All four registrations use the same
timing-sensitive test body, so make their retry behavior consistent.

Refs: #262
2026-08-29 15:34:26 -07:00
.github ci: provide unversioned Python for test scripts 2026-08-28 03:26:05 -07:00
cmake 2.2.2 release prep 2026-07-01 04:49:19 -07:00
compat/sys Add caching for evdns (#1717) 2024-10-24 08:28:53 +02:00
Documentation Fix typos (#1825) 2025-11-22 12:45:23 +01:00
extra Fix data race due concurrent write to event_debug_mode_too_late 2026-03-20 13:39:24 +01:00
include evrpc: Fix integer overflow in evtag_unmarshal_header. 2026-06-29 13:19:01 -04:00
m4 Add option to auto-detect OpenSSL and MbedTLS 2023-06-07 11:10:14 -07:00
sample sample: Replace strcpy in http-server.c 2026-06-21 19:49:56 -04:00
test test: make bufferevent timeout tests retriable 2026-08-29 15:34:26 -07:00
test-export test: don't scramble PATH in test-export.py 2026-08-28 01:51:28 -07:00
WIN32-Code Remove manually written nmake makefiles (cmake should be used instead) 2019-04-03 07:33:09 +03:00
.clang-format Add config for clang-format 2016-10-05 15:47:46 +03:00
.exrc Add config for vim/nvim 2023-02-04 14:56:53 +01:00
.gitignore gitignore cleanup (#1672) 2024-06-24 09:58:46 +02:00
.mailmap mailmap: add name/email aliases for yuangongji (name and email) 2019-11-17 15:51:07 +03:00
.uncrustify Add config for uncrustify 2016-10-05 15:47:46 +03:00
.yamllint Ignore truthy in yamllint (for github-actions) 2020-01-26 21:37:11 +03:00
arc4random.c Win32: fall back to CryptGenRandom when BCryptGenRandom is unavailable (#1813) 2026-03-22 14:25:30 +01:00
autogen.sh build: remove inconsistently used x-prefix comparisons 2021-11-24 14:41:33 +08:00
buffer.c Fix a dangling pointer in evbuffer_add_buffer_reference. 2026-06-29 13:19:01 -04:00
buffer_iocp.c Fix some typos (#1284) 2022-06-12 23:58:50 +03:00
bufferevent-internal.h bufferevent: Fix heap out-of-bounds write via AF_UNIX+http+NDEBUG 2026-06-29 13:19:01 -04:00
bufferevent.c Fix non-std printf %p arguments (#1327) 2022-08-28 15:27:04 +03:00
bufferevent_async.c Missing <winerror.h> on win7/MinGW(MINGW32_NT-6.1)/MSYS 2019-07-11 10:21:33 +03:00
bufferevent_filter.c Fix typos (#1634) 2024-04-30 09:59:58 +02:00
bufferevent_mbedtls.c bufferevent_ssl: do not return NULL from upcast 2024-02-18 19:49:44 +01:00
bufferevent_openssl.c Fix -Wcast-function-type errors 2024-06-01 18:24:43 +02:00
bufferevent_pair.c Fix typos (#1634) 2024-04-30 09:59:58 +02:00
bufferevent_ratelim.c Fix integer-overflow in ev_token_bucket_cfg_new 2024-03-03 16:25:08 +01:00
bufferevent_sock.c bufferevent: Fix heap out-of-bounds write via AF_UNIX+http+NDEBUG 2026-06-29 13:19:01 -04:00
bufferevent_ssl.c bufferevent_ssl: fix freeing ctx in case of error in bufferevent_ssl_new_impl 2024-02-18 19:51:21 +01:00
changelist-internal.h Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP). 2014-01-17 23:20:42 -02:00
ChangeLog Changelog: record CVE identifiers. 2026-07-29 13:44:30 -04:00
ChangeLog-1.4 Fix typos (#1634) 2024-04-30 09:59:58 +02:00
ChangeLog-2.0 Fix typos (#1634) 2024-04-30 09:59:58 +02:00
ChangeLog-2.1 Copy 2.1.13 changelog forward. 2026-07-01 09:02:05 -04:00
checkpatch.sh checkpatch.sh: fix clang-format-diff usage 2020-05-27 20:36:38 +03:00
CMakeLists.txt 2.2.2 release prep 2026-07-01 04:49:19 -07:00
configure.ac Bump version to 2.2.2-alpha. 2026-06-30 13:47:11 -04:00
CONTRIBUTING.md Update documentation [ci skip] 2019-03-11 20:11:44 +03:00
CONTRIBUTORS.md Update contributors (for 2.2 release) 2023-05-20 18:19:31 +02:00
defer-internal.h Export symbols for -fvisibility=hidden (under cmake) 2017-03-13 12:57:22 +03:00
devpoll.c Have all visible internal function names end with an underscore. 2012-02-29 15:07:33 -05:00
Doxyfile Add minimal WebSocket server implementation for evhttp (#1322) 2022-09-12 22:16:56 +03:00
doxygen.am Change prefix for man pages from "le_" to "libevent_" 2020-10-04 22:59:12 +03:00
epoll.c signal: new signal handling backend based on signalfd 2022-11-12 21:14:48 +01:00
epoll_sub.c Merge remote-tracking branch 'origin/patches-2.0' 2014-01-22 11:46:52 -05:00
epolltable-internal.h fix a comment error 2018-12-16 00:51:14 +03:00
evbuffer-internal.h Maximum evbuffer read configuration 2019-03-16 17:30:15 +03:00
evconfig-private.h.cmake Define __EXT_POSIX2 for QNX 2018-10-28 01:59:11 +03:00
evconfig-private.h.in Define __EXT_POSIX2 for QNX 2018-10-28 01:59:11 +03:00
evdns-internal.h Windows platform supports reading IPv6 addresses for DNS server. (#1701) 2024-11-02 18:26:59 +01:00
evdns.c evdns: Fix out-of-bounds write in dnsname_to_labels 2026-06-29 13:19:01 -04:00
event-config.h.cmake mingw: Fix build of https-client.c 2026-06-21 15:13:43 -04:00
event-internal.h Fix typos in comments (sample/test/event-internal.h) 2019-08-09 12:34:46 +03:00
event.c Fix data race due concurrent write to event_debug_mode_too_late 2026-03-20 13:39:24 +01:00
event_iocp.c move _WIN32_WINNT defintions before first #include 2023-07-25 10:52:10 -07:00
event_rpcgen.py Fix typos (#1825) 2025-11-22 12:45:23 +01:00
event_tagging.c evrpc: Fix out-of-bounds read in decode_tag_internal 2026-06-29 13:20:42 -04:00
evmap-internal.h Have all visible internal function names end with an underscore. 2012-02-29 15:07:33 -05:00
evmap.c Improve hashsocket() (for win32) to avoid collisions 2024-10-27 15:55:12 +01:00
evport.c Have all visible internal function names end with an underscore. 2012-02-29 15:07:33 -05:00
evrpc-internal.h Fix typos (#1825) 2025-11-22 12:45:23 +01:00
evrpc.c evrpc: proper NULL checks (API function return value added) 2024-02-18 19:48:55 +01:00
evsignal-internal.h signal: new signal handling backend based on signalfd 2022-11-12 21:14:48 +01:00
evthread-internal.h Fix EVBASE_ACQUIRE_LOCK/EVBASE_RELEASE_LOCK for EVENT__DISABLE_THREAD_SUPPORT 2022-07-09 17:36:13 +03:00
evthread.c evthread: fix NULL dereference in evthread_setup_global_lock_() 2024-02-18 19:49:44 +01:00
evthread_pthread.c fix evthread_use_pthreads_with_flags dead lock when first return 2021-07-16 10:21:06 +08:00
evthread_win32.c move _WIN32_WINNT defintions before first #include 2023-07-25 10:52:10 -07:00
evutil.c Remove second strchr() in evutil_inet_pton_scope() 2026-03-19 16:26:14 +01:00
evutil_rand.c Use arc4random_stir over deprecated arc4random_addrandom (#1631) 2024-10-26 20:46:41 +02:00
evutil_time.c Fix typos (#1825) 2025-11-22 12:45:23 +01:00
ht-internal.h Fix unlikely (for libevent) UB in HT_GROW() 2024-11-03 00:40:17 +03:00
http-internal.h Fix: Export additional symbols. 2026-06-30 15:36:13 -04:00
http.c http: Discard trailers. 2026-06-29 13:20:41 -04:00
iocp-internal.h cmake: Export missing symbols for win32 2017-03-14 08:47:18 +03:00
ipv6-internal.h Convert include-guard macro convention to avoid reserved identifiers 2012-02-29 15:07:31 -05:00
kqueue-internal.h Fix some comments 2024-04-24 08:27:12 +02:00
kqueue.c Improve portability on NetBSD 2025-02-02 20:41:01 +01:00
libevent.pc.in libevent.pc: link against core/extra 2018-10-28 03:09:47 +03:00
libevent_core.pc.in Make dependency paths relocatable 2023-05-16 07:46:56 +02:00
libevent_extra.pc.in Make dependency paths relocatable 2023-05-16 07:46:56 +02:00
libevent_mbedtls.pc.in Make dependency paths relocatable 2023-05-16 07:46:56 +02:00
libevent_openssl.pc.in Make dependency paths relocatable 2023-05-16 07:46:56 +02:00
libevent_pthreads.pc.in Make dependency paths relocatable 2023-05-16 07:46:56 +02:00
LICENSE Update LICENSE for ssl-client-mbedtls.c 2020-07-22 23:04:02 +03:00
listener.c Don't try to set SO_REUSEADDR and SO_REUSEPORT on Unix sockets (#1625) 2024-05-20 11:17:45 +02:00
log-internal.h Fix event_debug_logging_mask_ exporting on win32 2017-05-29 22:26:16 +03:00
log.c Revert "Make event_debug_get_logging_mask_() real symbol (win32)" 2017-05-29 22:07:57 +03:00
make-event-config.sed config.h can't be prefixed unconditionally 2018-06-08 02:14:38 +03:00
make_epoll_table.py Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP). 2014-01-17 23:20:42 -02:00
Makefile.am 2.2.2 release prep 2026-07-01 04:49:19 -07:00
mbedtls-compat.h Add compatibility with MbedTLS 4 2026-03-22 07:13:20 +01:00
minheap-internal.h Protect min_heap_push_ against integer overflow. 2019-04-22 23:51:25 +03:00
mm-internal.h FIX: header warning in clangd checks (#1827) 2026-03-20 13:59:50 +01:00
openssl-compat.h Don't define BIO_get_init() for LibreSSL 3.5+ 2021-11-30 22:32:18 +03:00
poll.c signal: new signal handling backend based on signalfd 2022-11-12 21:14:48 +01:00
PreLoad.cmake Do not install RPATH for install tree by default 2022-03-10 23:54:58 +03:00
PrivacyInfo.xcprivacy Add Privacy Manifest for App Store submissions 2024-05-05 09:32:37 +03:00
ratelim-internal.h Have all visible internal function names end with an underscore. 2012-02-29 15:07:33 -05:00
README.md Edit logo path to match new website directory 2024-04-08 07:08:49 +02:00
SECURITY.md Create Security Policy (#1462) 2023-05-25 07:05:28 +02:00
select.c signal: new signal handling backend based on signalfd 2022-11-12 21:14:48 +01:00
sha1.c sha1: Use evutil_memclear_ instead of memset. 2026-06-29 13:21:02 -04:00
sha1.h sha1: hide SHA1_CTX 2022-11-12 16:42:10 +01:00
signal.c signal: new signal handling backend based on signalfd 2022-11-12 21:14:48 +01:00
signalfd.c Fix memory leak in error path of sigfd_add() 2025-11-17 21:41:17 +01:00
ssl-compat.h Fix typos (#1825) 2025-11-22 12:45:23 +01:00
strlcpy-internal.h Export symbols for -fvisibility=hidden (under cmake) 2017-03-13 12:57:22 +03:00
strlcpy.c Fixes some new warnings under clang-15 2023-01-27 08:58:51 +01:00
time-internal.h Export symbols for -fvisibility=hidden (under cmake) 2017-03-13 12:57:22 +03:00
util-internal.h Fix: Export additional symbols. 2026-06-30 15:36:13 -04:00
watch.c evwatch: Add "prepare" and "check" watchers. 2019-04-03 12:44:50 -04:00
wepoll.c Fix typos (#1634) 2024-04-30 09:59:58 +02:00
wepoll.h wepoll api: fix definition of EPOLLONESHOT to match Linux 2023-10-12 23:02:38 +03:00
whatsnew-2.0.txt Fix typos (#1825) 2025-11-22 12:45:23 +01:00
whatsnew-2.1.txt Fix typos (#1825) 2025-11-22 12:45:23 +01:00
whatsnew-2.2.txt Fix typos (#1825) 2025-11-22 12:45:23 +01:00
win32select.c variable redefinition in win32_dispatch 2020-05-25 10:33:24 +08:00
ws.c ws: free the connection on BEV_EVENT_ERROR, not only BEV_EVENT_EOF 2026-08-29 17:33:24 +02:00

libevent logo

CI Coverage Status Join the chat at https://gitter.im/libevent/libevent doxygen OpenSSF Scorecard

1. BUILDING AND INSTALLATION

CMake (Unix)

mkdir build && cd build
cmake ..     # Default to Unix Makefiles.
make
make verify  # (optional)

See Documentation/Building#Building on Unix using CMake for more information.

CMake (Windows)

Install CMake: https://cmake.org/

md build && cd build
cmake -G "Visual Studio 10" ..   # Or use any generator you want to use. Run cmake --help for a list
cmake --build . --config Release # Or "start libevent.sln" and build with menu in Visual Studio.

See Documentation/Building#Building on Windows for more information.

Package Managers

You can download and install libevent using the vcpkg dependency manager:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install libevent

The libevent port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.

Autoconf

Note, since 2.2 it is deprecated

./configure
make
make verify   # (optional)
sudo make install

See Documentation/Building#Autoconf for more information.

2. USEFUL LINKS:

For the latest released version of Libevent, see the official website at https://libevent.org/ .

There's a pretty good work-in-progress manual up at http://www.wangafu.net/~nickm/libevent-book/ .

For the latest development versions of Libevent, access our Git repository via

$ git clone https://github.com/libevent/libevent.git

You can browse the git repository online at:

https://github.com/libevent/libevent

To report bugs, issues, or ask for new features:

Patches: https://github.com/libevent/libevent/pulls

OK, those are not really patches. You fork, modify, and hit the "Create Pull Request" button. You can still submit normal git patches via the mailing list.

Bugs, Features [RFC], and Issues: https://github.com/libevent/libevent/issues

Or you can do it via the mailing list.

There's also a libevent-users mailing list for talking about Libevent use and development:

https://archives.seul.org/libevent/users/

3. ACKNOWLEDGMENTS

The following people have helped with suggestions, ideas, code or fixing bugs.