haskell-stdio is a self contained IO toolkit for Haskell (more specifically, GHC), modules can be divided into three categories:
Packed data structures:
Array interface, for many array types GHC RTS provide.
Vector (array slices) operatation, including
Vectorumbrella module, re-exports many things from following modules.
PrimVectortype, basic operations and instances.
Parser type for encoding/decoding between haskell values and
Builderumbrella module, re-exports many things from following modules.
Buildermonad type, basic builders.
Std.Data.Builder.Numeric Various numeric builders, including fast IEEE float builders!
Parserumbrella module, re-exports many things from following modules.
Parsermonad type, basic parsers.
IO related stuff:
Buffered IO support, for reading and writing
FileSystemsupport, with special path type
Internal modules for hackers:
Currently we also have plans to support more things such as JSON protocols, UDP socket, etc, which will also built upon works above. Basically we focus on engineering infrastructure only. Please join in!
Here is a video recorded @shenzhen chinese haskell meeting by @winterland1989, it explains almost every detail how do we combine GHC’s lightweight thread with libuv’s event loop in haskell-stdio.