<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html><
head>
<
title>liboop home page<
/title>
<
link rel="stylesheet" type="text/css" href="style.css">
<
/head><
body>
<
img src="logo" alt="liboop" width=202 height=50>
<
p>
Liboop is a low-level event loop management library
for POSIX-based operating
systems. It supports the development of modular, multiplexed applications
which may respond to events from several sources. It replaces the
"select()
loop" and allows the registration of event handlers
for file and network I
/O,
timers and signals. Since processes use these mechanisms
for almost all
external communication, liboop can be used as the basis
for almost any
application.
<
p>
Liboop is licensed under the
<
a href="http://www.fsf.org/copyleft/lesser.html">Lesser General Public
License<
/a>.
<
p>
Similar free software includes the GLib <
a
href="http://developer.gnome.org/doc/API/glib/glib-the-main-event-loop.html">Main
Event Loop<
/a>, Niels Provos
' <a href="http://www.monkey.org/~provos/libevent/">libevent</a>, and (for Perl) <a href="http://poe.perl.org/">POE</a>.
Refer to the <a href="why#glib">rationale</a> for a detailed comparison.
<p>
Software which uses or supports liboop includes
<a href="http://www.lysator.liu.se/~nisse/lsh/">lsh</a>,
<a href="http://www.nongnu.org/ruli/">RULI</a>,
<a href="http://www.lysator.liu.se/lyskom/lyskom-server/">lyskom-server</a>,
<a href="http://gale.org/">Gale</a> and
<a href="http://gdn.berlios.de/">GDN</a>. (Let me know if I'm missing any.
)
<
h3>Download.<
/h3>
Get the
<
a href="http://download.ofb.net/liboop/liboop.tar.gz">latest version<
/a>.
Read the included INSTALL file.
<
p>
You may also browse the CVS repository
for
<
a href="http://liboop.org/cvs/gale/liboop/">source code<
/a> or
<
a href="http://liboop.org/cvs/liboop.org/">documentation<
/a>.
<
h3>Documentation.<
/h3>
<
dl>
<
dt><
a href="why">Extended rationale<
/a>
<
dd>Why everyone should be using liboop.
<
dt><
a href="how">Introduction and overview<
/a>
<
dd>How liboop works; basic principles of operation.
<
dt><
a href="ref">Reference<
/a>
<
dd>Specific functions and
data structures.
<
/dl>
<
h3>News.<
/h3>
<
dl>
<
dt>
27 October
2003
<
dd>
Version 1.0 released.
(The number has no special meaning, it
's just
the next increment.) The build is little more robust now, and you can enable
and disable specific adapters in the configure script. The ADNS adapter
returns error messages, the GLib adapter works with GLib 2, and there's a
new oop_sys_run_once
() function so you can poll an event source.<
p>
<
dt>
11 January
2003
<
dd>
Version 0.9 released. A memory leak when creating and destroying the
system event source was fixed, the robustness of signal handling is improved,
and some minor portability problems were fixed.<
p>
<
dt>
18 September
2001
<
dd>
Version 0.8 released, including a <
a href="oop_tcl">source adapter<
/a>
for <
a href="http://www.purl.org/tcl/home/">Tcl
/Tk<
/a>.
(0.7 was never
announced.
)<
p>
<
dt>
7 October
2000
<
dd>
Version 0.6 released, including a <
a href="oop_rl">sink adapter<
/a>
for the <
a href="http://cnswww.cns.cwru.edu/~chet/readline/rltop.html">GNU
Readline Library<
/a>.<
p>
<
dt>
5 September
1999
<
dd>
Version 0.4 released. Besides the usual bug fixes, the
<
a href="on_fd">file descriptor deregistration interface<
/a> changed, and we
now have a <
a href="oop_glib">source adapter<
/a>
for
<
a href="http://gtk.org/">GLib<
/a>, and a <
a href="oop_www">sink adapter<
/a>
for the <
a href="http://www.w3.org/Library/">W3C Protocol Library
(libwww
)<
/a>! The test
/sample program
(test-oop
) is also quite improved.<
p>
<
dt>
15 August
1999
<
dd>
Version 0.3 released. This
version includes an
<
a href="oop_adns">adapter<
/a>
for
<
a href="http://www.chiark.greenend.org.uk/~ian/adns/">Ian Jackson
's
asynchronous DNS resolver library</a>.<p>
<em>Note that while liboop is
covered by the lesser GPL, ADNS is covered by the <strong>full GPL</strong>,
and therefore any program which uses ADNS with (or without) liboop must
support distribution under the terms of the full GPL.</em><p>
<dt>1 August 1999
<dd>Version 0.2 released. This release fixes several bugs, uses
<a href="http://www.gnu.org/software/autoconf/autoconf.html">autoconf</a>,
<a href="http://www.gnu.org/software/automake/automake.html">automake</a> and
<a href="http://www.gnu.org/software/libtool/libtool.html">libtool</a>,
and includes an interface for using
<a href="alloc">alternate memory allocation functions</a>.
<a href="">Gale</a> now uses liboop!<p>
<dt>5 July 1999
<dd>Version 0.1 released. This is a very, very simple initial release that
should nevertheless work as a functional event loop. No adapters are included
yet. Testing is minimal, but give it a whirl!
</dl>
<hr><a href="http://ofb.net/~egnor/">Dan Egnor</a> (egnor
@
ofb.net)</body></html>