[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: [announce] New LTN
- From: Diego Nehab <diego@...>
- Date: Wed, 19 May 2004 03:20:21 -0400 (EDT)
Hi,
I am releasing LTN012. Here is the abstract:
Certain operations can be implemented in the form of filters. A filter
is a function that processes data received in consecutive function
calls, returning partial results chunk by chunk. Examples of operations
that can be implemented as filters include the end-of-line normalization
for text, Base64 and Quoted-Printable transfer content encodings, the
breaking of text into lines, SMTP byte stuffing, and there are many
others. Filters become even more powerful when we allow them to be
chained together to create composite filters. Filters can be seen as
middle nodes in a chain of data transformations. Sources an sinks are
the corresponding end points of these chains. A source is a function
that produces data, chunk by chunk, and a sink is a function that takes
data, chunk by chunk. In this technical note, we define an elegant
interface for filters, sources, sinks and chaining. We evolve our
interface progressively, until we reach a high degree of generality. We
discuss difficulties that arise during the implementation of this
interface and we provide solutions and examples.
It is temporarily at:
http://www.cs.princeton.edu/~diego/ltn012.html
This LTN explains some of the cool ideas we are using in the new
LuaSocket, but that can be used elsewhere. Comments are welcome!
[]s,
Diego.