Revision as of 20:51, 14 February 2008
This page provides a list of missing and found libraries for solving common real world programmer tasks.
If you think there should be a library for some common task, add it to this page, and someone may well step up and write it. If you know of a library to solve an open problem domain, link to it.
The first place to look is the full libraries list.
1 Missing libraries (by problem domain)
A functional IMAP library would be nice, particularly one that can be used in conjunction with encryption and authentication. References have been found to a SoC project although it appears to be derelict.
1.2 Numerical algorithms
Stuff to compute bessel functions, struve H1 etc.
1.3 .NET/Java Interoperability
We could use a .NET FFI library that lets you easily call into the .NET framework. Perhaps the (abandoned?) Hugs .NET FFI library could be resurrected/updated and ported to GHC? Maybe a tool could even be created that automates the interoperability of Haskell and arbitrary .NET libraries?
- I'm working on a Haskell to .NET bridge for my undergraduate thesis. The goal is to provide access to arbitrary .NET libraries from Haskell, with a convenient syntax. I expect to have something releasable in a few weeks. AndrewA 13:33, 6 October 2007 (UTC)
1.4 AMQP Client
It will be great to have a client for the open source protocol AMQ (http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol). This is a new transport protocol, solving problems currently addressed by Java Messaging Service, MQ, Tibco RV, etc. Financial companies such infrastructure to distribute massive amounts of market data (although the protocol can be used for effeciently distributing anything)
2 Could be improved
Problems with existing solutions, that could be improved.
- The core HTTP libraries need a lot of work. There is the beginnings of a useful library there, but many http codes are not handled, and there should be simple 'get' and 'head' functionality.
- Binary serialisation support should be ported to bytestring, and added to the extralibs bundle
- Support for wider Word values in bytestring.
- Adding bytestring support to Parsec.
- Simple process forking/popen, of type , is needed (the implementation should be in base)String -> IO String
If you have code that improves on something in the base libraries, you might consider submitting it to the libraries process, so it can appear in the standard libraries.
3 Existing libraries (by problem domain)
See GUI libraries
3.2 High performance string IO
See String libraries
3.3 Binary IO
See Binary IO
See Compressing data
See Crypto libraries
3.6 Web frameworks
See Web frameworks
3.7 XML processing
See XML handling
3.8 Database access
4 Libraries to package
Several cool libraries are out there, not yet in hackage / cabal format. Some on the hitlist , that would be great to package up would be:
- probabilistic monads
- one of the libcurl bindings, either http://code.haskell.org/curl/ or better yet the SoC work at http://google-summer-of-code-2007-haskell.googlecode.com/files/Mieczyslaw_Bak.tar.gz.
5 C libraries
C libraries are often very popular, and cheap to bind to. A good task would be to just write bindings to C libraries, sorted by popularity.
Possible library rankings are provided by: