<div dir="ltr"><div class="gmail_quote"><font face="monospace, monospace">Dear Haskellers!<br></font><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="monospace, monospace">We're pleased to announce the first public version of stdio, a simple and high performance IO toolkit for Haskell. This package provides a simple and high performance IO toolkit for Haskell, including packed vectors, unicode texts, socket, file system, timers and more! </font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="monospace, monospace">The Hackage link is <a href="http://hackage.haskell.org/package/stdio-0.1.0.0" target="_blank">http://hackage.haskell.org/package/stdio-0.1.0.0</a>. This project started as an experiment of combining libuv with GHC runtime, the result is recorded in our Haskell 2018 paper <a href="https://github.com/haskell-stdio/stdio/blob/master/docs/A%20High-Performance%20Multicore%20IO%20Manager%20Based%20on%20libuv%20(Experience%20Report).pdf" target="_blank">A High-Performance Multicore IO Manager Based on libuv (Experience Report)</a> , which is pretty good comparing to the old IO manager in base. The IO manager part is stable and fast now. </font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="monospace, monospace">The package also provides new vector and new text type based on ByteArray# primitive, which is not limited to pinned memory. As GHC 8.6 release have added unaligned access primitives to ByteArray#, We think it's a good to release our work. The new vector and text (internal using UTF-8 encoding)'s performance is comparative to bytestring and text ones, and we strive to provide the similiar API. Some unicode processing such as normalization and casefolding is also provide, based on a C unicode library <a href="https://bitbucket.org/knight666/utf8rewind" target="_blank">utf8rewind</a>. </font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="monospace, monospace">To make our package more useful, we rebuild Builder and Parser type from groud, add TCP socket and filesystem support, so that user can start using it to do some simple task, such as parsing a CSV file or starting a TCP server and communicate in protocols. We also provide high performance timer and logger module, which is useful in practical engineering tasks. </font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="monospace, monospace">For installation guide and examples, please see the project's README. As we (I and Tao He) both are not native english speakers, the document quality is not as satisfying as it can be, please help! If you meet issues with installing, bugs, questions, please fill an issue on github: <a href="https://github.com/haskell-stdio/stdio" target="_blank">https://github.com/haskell-stdio/stdio</a>. </font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="monospace, monospace">Happy hacking as always!</font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="monospace, monospace"><br></font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="monospace, monospace">Dong Han, Tao He</font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="monospace, monospace">Feb 16. 2019</font></pre></div></div></div></div></div></div>