-
Notifications
You must be signed in to change notification settings - Fork 11
/
index.html
344 lines (296 loc) · 29.8 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
<!doctype html>
<html lang="en">
<head>
<title>libevent</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="style.css" type="text/css">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
</head>
<body>
<!-- Google tag (gtag.js) -->
<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-M3CEY418LQ" type="text/javascript"></script>
<script type="text/javascript">
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-M3CEY418LQ');
</script>
<nav class="navbar bg-body-tertiary">
<div class="container-fluid">
<a class="navbar-brand" href="index.html">
<img src= "images/libevent3.png" alt="libevent" width="90" height="auto" class="d-inline-block align-text-top">
</a>
<span class="navbar-text">
An Event Notification Library
</span>
</div>
</nav>
<div id="maindiv">
<!-- table 1: -->
<div id="introtext">
<div class= "card" id="sidebar">
<div id="support">
<h3>Support & Info</h3>
Bug Tracking: <a href="https://github.com/libevent/libevent/issues">Bugs & Features</a><br>
Mailing List: <a href="http://archives.seul.org/libevent/users/">Info</a><br>
Git Repository: <a href="https://github.com/libevent/libevent">github</a> <a href="http://sourceforge.net/git/?group_id=50884">(sourceforge - deprecated)</a><br>
License: <a href="LICENSE.txt">3-clause BSD</a><br>
IRC: #libevent on <a href="http://www.oftc.net">OFTC</a>
</div>
<div id="wishlists">
<h3>Happy Hacking</h3>You can make Libevent developers happy by reducing our wishlists!<br>
<a href="http://www.amazon.com/gp/registry/wishlist/WKACB1E0HNRA">Nick's list</a> – <a href="http://www.citi.umich.edu/u/provos/wishlists/amazon.html">Niels's list</a>
</div>
<div id="sponsors">
<h3>Sponsors</h3><a href="http://appnexus.com/"><img id="appnexus-logo" src="images/sm-web-appnexus-logo.png" alt="AppNexus Logo" name="appnexus-logo"></a>Thanks to <a href="http://appnexus.com/">AppNexus</a> for sponsoring Libevent development in 2012!
</div>
</div>
The <i>libevent</i> API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, <i>libevent</i> also support callbacks due to <b>signals</b> or regular <b>timeouts</b>.
<p><i>libevent</i> is meant to replace the event loop found in event driven network servers. An application just needs to call <i>event_dispatch()</i> and then add or remove events dynamically without having to change the event loop.</p>
<p>Currently, <i>libevent</i> supports <i><a href="http://download.oracle.com/docs/cd/E19253-01/816-5177/6mbbc4g9n/index.html">/dev/poll</a></i>, <i><a href="http://www.freebsd.org/cgi/man.cgi?query=kqueue&apropos=0&sektion=0&format=html">kqueue(2)</a></i>, <i><a href="http://developers.sun.com/solaris/articles/event_completion.html">event ports</a></i>, <a href="http://manpages.debian.net/cgi-bin/man.cgi?query=select">POSIX <i>select(2)</i></a>, <a href="http://msdn.microsoft.com/en-us/library/ms740141(v=vs.85).aspx">Windows <i>select()</i></a>, <a href="http://manpages.debian.net/cgi-bin/man.cgi?query=poll"><i>poll(2)</i></a>, and <i><a href="http://www.xmailserver.org/linux-patches/epoll.txt">epoll(4)</a></i>. The internal event mechanism is completely independent of the exposed event API, and a simple update of libevent can provide new functionality without having to redesign the applications. As a result, <i>Libevent</i> allows for portable application
development and provides the most scalable event notification mechanism available on an operating system. Libevent can also be used for multi-threaded applications, either by isolating each event_base so that only a single thread accesses it, or by locked access to a single shared event_base. <i>Libevent</i> should compile on Linux, *BSD, Mac OS X, Solaris, Windows, and more.</p>
<p>Libevent additionally provides a sophisticated framework for buffered network IO, with support for sockets, filters, rate-limiting, SSL, zero-copy file transmission, and IOCP. Libevent includes support for several useful protocols, including DNS, HTTP, and a minimal RPC framework.</p>
<p>More information about event notification mechanisms for network servers can be found on Dan Kegel's "<a href="http://www.kegel.com/c10k.html">The C10K problem</a>" web page. <!--Another library that abstracts asynchronous event notification is <a href="http://liboop.ofb.net/">liboop</a>.--></p>
<p>A <a href="http://archives.seul.org/libevent/users/">mailing list for libevent</a> is now available. Libevent is maintained by <a href="http://www.wangafu.net/~nickm/">Nick Mathewson</a>, <a href="https://github.com/azat">Azat Khuzhin</a> and <a href="http://www.citi.umich.edu/u/provos/">Niels Provos</a>. <!-- end of initial text. --></p>
</div>
<div class="row">
<div class="col card" valign="top" id="download">
<div class = "m-2">
<h3>Documentation</h3>
Book: <a href="https://libevent.org/libevent-book/">Programming with Libevent</a>.<br>
Reference: <a href="http://www.wangafu.net/~nickm/libevent-1.4/doxygen/html">1.4.x-stable</a> <a href="http://www.wangafu.net/~nickm/libevent-2.0/doxygen/html">2.0.x-stable</a> <a href="http://www.wangafu.net/~nickm/libevent-2.1/doxygen/html">2.1.x-stable</a> <a href="/doc">master</a><br>
ABI/API compatibility report: <a href="https://abi-laboratory.pro/index.php?view=timeline&l=libevent">releases</a> <a href="/abi/timeline/libevent/">master</a><br>
What's new in: <a href="https://raw.githubusercontent.com/libevent/libevent/patches-2.0/whatsnew-2.0.txt">2.0.x-stable</a> <a href="https://raw.githubusercontent.com/libevent/libevent/patches-2.1/whatsnew-2.1.txt">2.1.x-alpha</a>. <!-- Sample Application: <a href="event-test.c">event-test.c</a> -->
<h3>Download–Stable releases</h3>
<p class="releasenote">These are the ones you probably want for software development, unless you like to track the latest development versions and report bugs in them.</p>
<ul class="tight">
<li><a class="latest" href="https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz">libevent-2.1.12-stable.tar.gz</a> [<a href="https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz.asc">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.12-stable/ChangeLog">ChangeLog</a><br>
<a href="https://github.com/libevent/libevent/pull/1045">PR</a><br>
Released 2020-07-05</li>
<li><a href="https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz">libevent-2.1.11-stable.tar.gz</a> [<a href="https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz.asc">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.11-stable/ChangeLog">ChangeLog</a><br>
Released 2019-08-01 (ABI changed)</li>
<li><a href="https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar.gz">libevent-2.1.10-stable.tar.gz</a> [<a href="https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar.gz.asc">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.10-stable/ChangeLog">ChangeLog</a><br>
Released 2019-05-26</li>
<li>
<a href="https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz">libevent-2.1.8-stable.tar.gz</a> [<a href="https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz.asc">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.8-stable/ChangeLog">ChangeLog</a><br>
Released 2017-01-22
<ul><li>Changelog to follow</li></ul>
</li>
<li>
<a href="https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz">libevent-2.0.22-stable.tar.gz</a> [<a href="https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz.asc">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.0.22-stable/ChangeLog">ChangeLog</a><br>
Released 2014-01-05
<ul><li>Changelog to follow</li></ul>
</li>
<li>
<a href="https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz">libevent-2.0.21-stable.tar.gz</a> [<a href="https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz.asc">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.0.21-stable/ChangeLog">ChangeLog</a><br>
Released 2012-11-18
<ul>
<li>Several SSL correctness and performance fixes.</li>
<li>Build fixes for mingw64</li>
<li>Avoid a few resource leaks</li>
<li>and more...</li>
</ul>
</li>
<li>
<a href="https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz">libevent-2.0.20-stable.tar.gz</a> [<a href="https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz.asc">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.0.20-stable/ChangeLog">ChangeLog</a><br>
Released 2012-08-23
<ul>
<li>Fix a crash on windows.</li>
<li>Make event_pending() threadsafe.</li>
<li>Another SSL callback behavior fixes</li>
<li>Avoid an evdns segfault (Greg Hazel)</li>
<li>and more...</li>
</ul>
</li>
<li>
<a href="https://github.com/libevent/libevent/archive/release-1.4.15-stable.tar.gz">libevent-1.4.15-stable.tar.gz</a> <a href="https://raw.githubusercontent.com/libevent/libevent/release-1.4.15-stable/ChangeLog">ChangeLog</a><br>
Released 2015-01-05
<ul><li>Changelog to follow</li></ul>
</li>
<li>
<a href="https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz">libevent-1.4.14b-stable.tar.gz</a> [<a href="https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz.sig">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-1.4.14b-stable/ChangeLog">ChangeLog</a><br>
Released 2010-06-07
<ul>
<li>Backport evbuffer_readln()</li>
<li>Fix a crash when reading badly formatted resolve.conf (Yasuoka Masahiko)</li>
<li>Make evutil_make_socket_nonblocking() leave any other flags alone (Jardel Weyrich)</li>
<li>Adjusted fcntl() retval comparison on evutil_make_socket_nonblocking() (Jardel Weyrich)</li>
<li>Re-add event_siglcb; some old code _was_ still using it. :(</li>
<li>Make Libevent 1.4 build on win32 with Unicode enabled. (Brodie Thiesfield)</li>
<li>Distribute nmake makefile for 1.4</li>
<li>Define _REENTRANT as needed on Solaris, elsewhere (6cbea13)</li>
<li>Other bugfixes for http, memory management, and cleanup.</li>
</ul>
</li>
</ul>
<h4>Download release candidates</h4>
<p class="releasenote">This is a release candidate. If you find any bugs, please let us know!</p>
<ul class="tight">
<li>
<a href="https://github.com/libevent/libevent/archive/release-2.1.7-rc.tar.gz">libevent-2.1.7-rc.tar.gz</a> <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.7-rc/ChangeLog">ChangeLog</a><br>
Released 2016-11-05
<ul><li>Changelog to follow.</li></ul>
</li>
</ul>
<h4>Download–Alpha releases</h4>
<p class="releasenote">This is alpha code. If you find any bugs, please let us know!</p>
<ul class="tight">
<li><a href="https://github.com/libevent/libevent/releases/download/release-2.2.1-alpha/libevent-2.2.1-alpha-dev.tar.gz">libevent-2.2.1-alpha-dev.tar.gz</a> [<a href="https://github.com/libevent/libevent/releases/download/release-2.2.1-alpha/libevent-2.2.1-alpha-dev.tar.gz.asc">GPG Sig</a>] <a href="https://github.com/libevent/libevent/blob/release-2.2.1-alpha/ChangeLog">ChangeLog</a><br>
Released 2023-05-21
</li>
<li><a href="https://github.com/libevent/libevent/releases/download/release-2.1.9-beta/libevent-2.1.9-beta.tar.gz">libevent-2.1.9-beta.tar.gz</a> [<a href="https://github.com/libevent/libevent/releases/download/release-2.1.9-beta/libevent-2.1.9-beta.tar.gz.asc">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.9-beta/ChangeLog">ChangeLog</a><br>
Released 2019-02-10
</li>
<li><a href="https://github.com/libevent/libevent/releases/download/release-2.0.23-beta/libevent-2.0.23-beta.tar.gz">libevent-2.0.23-beta.tar.gz</a> [<a href="https://github.com/libevent/libevent/releases/download/release-2.0.23-beta/libevent-2.0.23-beta.tar.gz.asc">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.0.23-beta/ChangeLog">ChangeLog</a><br>
Released 2019-01-20
</li>
<li>
<a href="https://github.com/libevent/libevent/archive/release-2.1.6-beta.tar.gz">libevent-2.1.6-beta.tar.gz</a> <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.6-beta/ChangeLog">ChangeLog</a><br>
Released 2016-08-27
<ul><li>Changelog to follow.</li></ul>
</li>
<li>
<a href="http://sourceforge.net/projects/levent/files/libevent/libevent-2.1/libevent-2.1.5-beta.tar.gz/download">libevent-2.1.5-beta.tar.gz</a> [<a href="http://sourceforge.net/projects/levent/files/libevent/libevent-2.1/libevent-2.1.5-beta.tar.gz.asc/download">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.5-beta/ChangeLog">ChangeLog</a><br>
Released 2015-01-05
<ul><li>Changelog to follow.</li></ul>
</li>
<li>
<a href="https://sourceforge.net/projects/levent/files/libevent/libevent-2.1/libevent-2.1.4-alpha.tar.gz/download">libevent-2.1.4-alpha.tar.gz</a> [<a href="https://sourceforge.net/projects/levent/files/libevent/libevent-2.1/libevent-2.1.4-alpha.tar.gz.asc/download">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.4-alpha/ChangeLog">ChangeLog</a><br>
Released 2014-03-21
<ul>
<li>Several new utility APIs in libevent core, bufferevents, and evhttp.</li>
<li>Detect closes early with EPOLLRDHUP.</li>
<li>(Optional) support for buildint with cmake.</li>
<li>Bugfixes too numerous to mention.</li>
<li><a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.4-alpha/whatsnew-2.1.txt">and much more...</a></li>
</ul>
</li>
<li>
<a href="https://sourceforge.net/projects/levent/files/libevent/libevent-2.1/libevent-2.1.3-alpha.tar.gz/download">libevent-2.1.3-alpha.tar.gz</a> [<a href="https://sourceforge.net/projects/levent/files/libevent/libevent-2.1/libevent-2.1.3-alpha.tar.gz.asc/download">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.3-alpha/ChangeLog">ChangeLog</a><br>
Released 2013-05-01
<ul>
<li>New finalization API with fix for bufferevent deadlock issue.</li>
<li>New evdns and evhttp option.</li>
<li>Several new unit tests.</li>
<li>Bugfixes and portability fixes and build fixes too numerous to mention.</li>
<li><a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.3-alpha/whatsnew-2.1.txt">and much more...</a></li>
</ul>
</li>
<li>
<a href="https://github.com/downloads/libevent/libevent/libevent-2.1.2-alpha.tar.gz">libevent-2.1.2-alpha.tar.gz</a> [<a href="https://github.com/downloads/libevent/libevent/libevent-2.1.2-alpha.tar.gz.asc">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.2-alpha/ChangeLog">ChangeLog</a><br>
Released 2012-11-18
<ul>
<li>Various new functions in the core, evbuffer, and bufferevent APIs</li>
<li>Even more backends can now use portable monotonic timers.</li>
<li>Updated autotools build infrastructure for faster builds.</li>
<li>More reliable unit tests</li>
<li>Internal event-callback interface now refactored for flexibility and performance</li>
<li>Faster notification with kqueue, faster/more precise timers on Linux</li>
<li>Numerous small performance improvements and data structure tweaks throughout the codebase</li>
<li>Various bugfixes against 2.1.1-alpha</li>
<li><a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.2-alpha/whatsnew-2.1.txt">and much more...</a></li>
</ul>
</li>
<li>
<a href="https://github.com/downloads/libevent/libevent/libevent-2.1.1-alpha.tar.gz">libevent-2.1.1-alpha.tar.gz</a> [<a href="https://github.com/downloads/libevent/libevent/libevent-2.1.1-alpha.tar.gz.asc">GPG Sig</a>] <a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.1-alpha/ChangeLog">ChangeLog</a><br>
Released 2012-04-03
<ul>
<li>First alpha release in the 2.1.x series.</li>
<li>Useful features for controlling the event loop and avoiding priority inversion</li>
<li>New debugging features.</li>
<li>New evbuffer functionality, including an improved sendfile/mmap wrapper, the ability to add one evbuffer to another, and more ways to avoid needless copies.</li>
<li>Numerous small performance improvements and data structure tweaks throughout the codebase.</li>
<li><a href="https://raw.githubusercontent.com/libevent/libevent/release-2.1.1-alpha/whatsnew-2.1.txt">and much more...</a></li>
</ul>
</li>
</ul>
<h3><a href="old-releases.html">Older Releases</a></h3>
<p>Libevent has been released under a <a href="LICENSE.txt">3-clause BSD license</a>. Information on public <a href="https://github.com/libevent/libevent">git</a> access.</p>
</div>
</div>
<div class="col card" valign="top" id="benchmark">
<div class="m-2">
<h3>Benchmark</h3>Performance comparison using different event notification mechansims in Libevent. We declare interest in a large number of connections of which most are cold and only a few are active.
<table cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="top"><img src="//monkey.org/~provos/libevent/libevent-benchmarks.jpg" alt="Benchmarks with one active connection"></td>
<td valign="top"> </td>
<td align="center" valign="top"><img src="//monkey.org/~provos/libevent/libevent-benchmark2s.jpg" alt="Benchmarks with 100 active connections"></td>
</tr>
<tr>
<td valign="top">The benchmark measures how long it takes to serve one active connection and exposes scalability issues of traditional interfaces like select or poll.</td>
<td valign="top"> </td>
<td valign="top">The benchmark measures how long it takes to serve one hundred active connections that chain writes to new connections until thousand writes and reads have happened. It exercises the event loop several times.</td>
</tr>
</table>
<h3>Programs using libevent</h3>The usefulness of libevent API is demonstrated by the following applications:
<ul>
<li><a href="http://www.chromium.org/Home">Chromium</a> – Google's open-source web browser (uses Libevent)</li>
<li><a href="http://www.memcached.org">Memcached</a> – a high-performance, distributed memory object caching system</li>
<li><a href="http://www.transmissionbt.com/">Transmission</a> – a fast, easy, and free BitTorrent client</li>
<li><a href="http://www.ntp.org">NTP</a> – the network time protocol that makes your clock right (uses Libevent in SNTP)</li>
<li><a href="http://tmux.sourceforge.net">tmux</a> – A clean, modern, BSD-licensed terminal multiplexer, similar to GNU screen</li>
<li><a href="https://www.torproject.org/">Tor</a> – an anonymous Internet communication system.</li>
<li><a href="https://github.com/criticalstack/libevhtp">libevhtp</a> – A fast and flexible replacement for libevent's http client/server API</li>
<li><a href="http://prosody.im/">Prosody</a> – A Jabber/XMPP server written in Lua</li>
<li><a href="http://wiki.postgresql.org/wiki/PgBouncer">PgBouncer</a> – Lightweight connection pooler for PostgreSQL</li>
<li><a href="http://darkk.net.ru/redsocks/">redsocks</a> – a simple transparent TCP -> Socks5/HTTPS proxy daemon.</li>
<li><a href="http://monkey.org/~provos/vomit/">Vomit</a> – Voice Over Misconfigured Internet Telephones</li>
<li><a href="http://monkey.org/~provos/crawl/">Crawl</a> – A Small and Efficient HTTP Crawler</li>
<li><a href="http://monkey.org/~provos/libio/">Libio</a> – an input/output abstraction library</li>
<li><a href="http://www.honeyd.org/">Honeyd</a> – a virtual honeynet daemon – can be used to <a href="http://www.honeyd.org/worms.php">fight Internet worms</a>.</li>
<li><a href="http://www.monkey.org/~dugsong/fragroute/">Fragroute</a> – an IDS testing tool</li>
<li><a href="http://monkey.org/~marius/nylon/">Nylon</a> – nested proxy server</li>
<li><a href="http://monkey.org/~provos/disconcert/">Disconcert</a> – a Distributed Computing Framework for Loosely-Coupled Workstations.</li><!-- <li><a href="http://plb.sunsite.dk/">PLB</a> – pure load balancer: a
free high-performance load balancer for Unix.</li> -->
<li><a href="https://github.com/mariusae/trickle">Trickle</a> – a lightweight userspace bandwidth shaper.</li>
<li><a href="http://oss.digirati.com.br/watchcatd/">watchcatd</a> – software watchdog designed to take actions not as drastic as the usual solutions, which reset the machine.</li>
<li><a href="http://monkey.org/~provos/scanssh/">ScanSSH</a> – a fast SSH server and open proxy scanner.</li>
<li><a href="http://www.honeyd.org/tools.php#nttlscan">Nttlscan</a> – a network topology scanner for Honeyd.</li>
<li><a href="http://nch.sourceforge.net/">NetChat</a> – a combination of netcat and ppp's chat.</li>
<li><a href="http://www.iolanguage.com/">Io</a> – a small programming language; uses libevent for network communication.</li>
<li><a href="http://www.systrace.org/">Systrace</a> – a system call sandbox.</li>
<li><a href="http://www.spybye.org/">SpyBye</a> – detect malware on web pages.</li>
<li><a href="http://www.greensql.net/">GreenSQL</a> – an SQL database firewall.</li>
<li><a href="http://monkey.org/~provos/dnsscan/">dnsscan</a> – a fast scanner for identifying open recursive dns resolvers</li>
<li><a href="http://code.google.com/p/kargo-event/">Kargo Event</a> – a PHP extension for libevent.</li>
<li><a href="http://maximelabelle.bitbucket.org/">Scytale</a> – a database encryption tool.</li>
<li><a href="https://github.com/coturn/coturn">Coturn</a> – Free open source implementation of TURN and STUN Server.</li>
</ul>
</div>
</div>
</div class="row">
</div><!-- End of "maindiv" -->
<nav class="nav bg-body-tertiary position-relative" id="coda">
<li class= "nav-item pt-2 px-3" id="end">
<address><a class="pt-1 link-primary icon-link active pb-0 link-underline-opacity-0 link-underline-opacity-25-hover" href="mailto:[email protected]">
<svg class="bi" aria-hidden="true" xmlns="http://www.w3.org/2000/svg">
<path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1zm13 2.383-4.708 2.825L15 11.105zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741M1 11.105l4.708-2.897L1 5.383z"/>
<use xmlns="http://www.w3.org/2000/svg"></use></svg>
Nick Mathewson
</a></address>
<address><a class="link-primary icon-link active py-0 link-underline-opacity-0 link-underline-opacity-25-hover" href="mailto:[email protected]">
<svg class="bi" aria-hidden="true" xmlns="http://www.w3.org/2000/svg">
<path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1zm13 2.383-4.708 2.825L15 11.105zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741M1 11.105l4.708-2.897L1 5.383z"/>
<use xmlns="http://www.w3.org/2000/svg"></use></svg>
Azat Khuzhin
</a></address>
<address><a class="link-primary icon-link active py-0 link-underline-opacity-0 link-underline-opacity-25-hover" href="mailto:[email protected]">
<svg class="bi" aria-hidden="true" xmlns="http://www.w3.org/2000/svg">
<path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1zm13 2.383-4.708 2.825L15 11.105zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741M1 11.105l4.708-2.897L1 5.383z"/>
<use xmlns="http://www.w3.org/2000/svg"></use></svg>
Niels Provos
</a></address>
</li>
<li class="navbar-item position-absolute top-0 end-0 pt-4" id="end">
<p class="text-end">
(Please do not mail us directly for technical support. Instead, please use the mailing list or the IRC channel.)<br>
<!-- Created: Mon Mar 11 12:43:06 EST 2002 -->
<!-- hhmts start -->
Last modified: 7 Apr 2024 <!-- hhmts end -->
</p>
</li>
</nav> <!-- end of coda -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
</body>
</html>