[Haskell-cafe] Interpreting fields in a buffer

Tomasz Zielonka t.zielonka at students.mimuw.edu.pl
Mon Jan 26 13:24:37 EST 2004


On Mon, Jan 26, 2004 at 10:34:06AM +0000, Alastair Reid wrote:
> 
> To access the fields, you will need to write a bunch of functions to read them 
> out (and write them if you need).  There's basically two approaches:
> 
> 1) Write access functions in C and use the ffi interface to call them.
>    For example, you might have a function to read the TTL field given
>    a pointer to the IP header.
> 
> 2) Write access functions in Haskell using functions from the Storable
>    class and associated libraries.

3) Roll your own (de)serialization framework

That's what I did. It's a bit complicated, but I will try to describe it
within a couple of days. Right now all I can say is that it uses TH and
has a couple of implementations of low-lever decoders, one of which
reads directly from UArray Int Word8. I managed to achieve throughput of
3 MB / s for quite complicated binary protocols, and I think I can
improve that even further.

Best regards,
Tom

-- 
.signature: Too many levels of symbolic links


More information about the Haskell-Cafe mailing list