<!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>