Subversion Repositories

?revision_form?Rev ?revision_input??revision_submit??revision_endform?

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

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