great!<div><br></div><div>I am wondering if you can provide even higher-level APIs for the common case:</div><div> <br>hash &lt;- runResourceT $ hashFile &quot;my-file&quot;</div><div><br></div><div>and possibly something that runs the ResourceT transformer:</div>

<div><br></div><div>hash &lt;- runHashFile &quot;my-file&quot;<br><br><div class="gmail_quote">On Sat, Jan 7, 2012 at 12:16 AM, Felipe Almeida Lessa <span dir="ltr">&lt;<a href="mailto:felipe.lessa@gmail.com">felipe.lessa@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello!<br>
<br>
I&#39;m pleased to announce the first release of crypto-conduit [1]!  The<br>
crypto-api [2] package provides APIs for many cryptographic<br>
operations, such as cryptographic hashes and block ciphers.  This new<br>
crypto-conduit package allows you to use many of these operations with<br>
conduits [3], giving you safe I/O using constant memory and no leaks.<br>
<br>
As an example, here&#39;s how you could get the SHA1 hash a file:<br>
<br>
  import Crypto.Conduit -- from crypto-conduit<br>
  import Crypto.Hash.SHA1 (SHA1) -- from cryptohash<br>
  import Data.Conduit -- from conduit<br>
  import Data.Conduit.Binary (sourceFile) -- from conduit<br>
<br>
  main = do<br>
    hash &lt;- runResourceT $ sourceFile &quot;my-file&quot; $$ sinkHash<br>
    print (hash :: SHA1)<br>
<br>
The code snippet above, despite having only &quot;sourceFile ... $$<br>
sinkHash&quot; on its core, guarantees that the file handle is not kept<br>
open and uses a constant amount of memory.  Sweet!<br>
<br>
Please break this package!  Although it comes with a test suite, it<br>
has just seen the light of the day.<br>
<br>
Cheers, =)<br>
<br>
[1] <a href="http://hackage.haskell.org/package/crypto-conduit" target="_blank">http://hackage.haskell.org/package/crypto-conduit</a><br>
[2] <a href="http://hackage.haskell.org/package/crypto-api" target="_blank">http://hackage.haskell.org/package/crypto-api</a><br>
[3] <a href="http://hackage.haskell.org/package/conduit" target="_blank">http://hackage.haskell.org/package/conduit</a><br>
<font color="#888888"><br>
--<br>
Felipe.<br>
<br>
_______________________________________________<br>
web-devel mailing list<br>
<a href="mailto:web-devel@haskell.org">web-devel@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/web-devel" target="_blank">http://www.haskell.org/mailman/listinfo/web-devel</a><br>
</font></blockquote></div><br></div>