great! I am wondering if you can provide even higher-level APIs for the common case:
hash <- runResourceT $ hashFile "my-file" and possibly something that runs the ResourceT transformer: hash <- runHashFile "my-file" On Sat, Jan 7, 2012 at 12:16 AM, Felipe Almeida Lessa < [email protected]> wrote: > Hello! > > I'm pleased to announce the first release of crypto-conduit [1]! The > crypto-api [2] package provides APIs for many cryptographic > operations, such as cryptographic hashes and block ciphers. This new > crypto-conduit package allows you to use many of these operations with > conduits [3], giving you safe I/O using constant memory and no leaks. > > As an example, here's how you could get the SHA1 hash a file: > > import Crypto.Conduit -- from crypto-conduit > import Crypto.Hash.SHA1 (SHA1) -- from cryptohash > import Data.Conduit -- from conduit > import Data.Conduit.Binary (sourceFile) -- from conduit > > main = do > hash <- runResourceT $ sourceFile "my-file" $$ sinkHash > print (hash :: SHA1) > > The code snippet above, despite having only "sourceFile ... $$ > sinkHash" on its core, guarantees that the file handle is not kept > open and uses a constant amount of memory. Sweet! > > Please break this package! Although it comes with a test suite, it > has just seen the light of the day. > > Cheers, =) > > [1] http://hackage.haskell.org/package/crypto-conduit > [2] http://hackage.haskell.org/package/crypto-api > [3] http://hackage.haskell.org/package/conduit > > -- > Felipe. > > _______________________________________________ > web-devel mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/web-devel >
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
