Difference between revisions of "Wanted libraries"
(rm wanted .NET - since salsa now exists, add harpy to Could be improved section) |
DonStewart (talk | contribs) |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 6: | Line 6: | ||
this page, and someone may well step up and write it. If you know of a |
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. |
library to solve an open problem domain, link to it. |
||
+ | |||
+ | Please add your proposals to the [http://www.reddit.com/r/haskell_proposals/ Haskell Proposals reddit], which allows voting and commenting on each new project idea. |
||
The first place to look is [[Libraries_and_tools|the full libraries list]]. |
The first place to look is [[Libraries_and_tools|the full libraries list]]. |
||
− | == Missing libraries (by problem domain) == |
||
− | |||
− | === IMAP === |
||
− | 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. |
||
− | |||
− | === Numerical algorithms === |
||
− | Stuff to compute bessel functions, struve H1 etc. |
||
− | |||
− | === 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) |
||
− | |||
− | === STOMP Client === |
||
− | The Streaming Text Orientated Messaging Protocol (http://stomp.codehaus.org/) is a messaging protocol supported by a good number of languages and message brokers. While not high-performance like AMQP it is apparently near trivial to implement and interact with. |
||
− | |||
− | === Darcs Bindings === |
||
− | Many darcs users have requested an interface to darcs as a C library. Creating this library would involve deciding on the details of the API and generating the bindings using the Haskell FFI. Designing the API is mostly done for you by following the structure of the darcs source code and how the existing commands interface with the core of darcs. |
||
− | |||
− | === OpenID Relying Party (Consumer) library === |
||
− | A library allowing (web) applications to authenticate users with an OpenID would be great. WikiPedia has a good [http://en.wikipedia.org/wiki/OpenID#Logging_in description] of what is expected from the relying party. |
||
− | |||
− | == Could be improved == |
||
− | |||
− | Problems with existing solutions, that could be improved. |
||
− | |||
− | * Harpy lacks support for x86-64 - supporting both x86 and x86-64 would be a boon. |
||
− | * 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 <hask>String -> IO String</hask>, is needed (the implementation should be in base) |
||
If you have code that improves on something in the base libraries, you might consider [[Library_submissions|submitting it to the libraries process]], so it can appear in the standard libraries. |
If you have code that improves on something in the base libraries, you might consider [[Library_submissions|submitting it to the libraries process]], so it can appear in the standard libraries. |
||
Line 84: | Line 56: | ||
Some on the hitlist , that would be great to package up would be: |
Some on the hitlist , that would be great to package up would be: |
||
− | * [http://www.eyrie.org/~zednenem/2004/hsce/Control.Comonad.html Control.Comonad] |
||
− | * [http://okmij.org/ftp/Computation/monads.html#LogicT LogicT] |
||
* [http://okmij.org/ftp/Computation/monads.html#random-var-monad probabilistic monads] |
* [http://okmij.org/ftp/Computation/monads.html#random-var-monad 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. |
* 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. |
Latest revision as of 03:52, 10 December 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.
Please add your proposals to the Haskell Proposals reddit, which allows voting and commenting on each new project idea.
The first place to look is the full libraries list.
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.
Existing libraries (by problem domain)
GUIs
See GUI libraries
High performance string IO
See String libraries
Binary IO
See Binary IO
Compression
See Compressing data
Encryption
See Crypto libraries
Web frameworks
See Web frameworks
XML processing
See XML handling
Database access
See Databases
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.
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:
- Debian packages ranked by: