Personal tools

Wanted libraries

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
 
(17 intermediate revisions by 13 users not shown)
Line 1: Line 1:
  +
[[Category:Libraries]]
 
This page provides a list of missing and found libraries for solving
 
This page provides a list of missing and found libraries for solving
 
common ''real world'' programmer tasks.
 
common ''real world'' programmer tasks.
Line 5: 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) ==
 
 
Add any common problem areas for which libraries are missing.
 
 
=== Numerical algorithms ===
 
Stuff to compute bessel functions, struve H1 etc.
 
 
=== .NET/Java Interoperability ===
 
We could use a .NET FFI library that lets you easily call into the .NET framework. Perhaps the (abandoned?) [http://galois.com/~sof/hugs98.net/ 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?
 
 
== 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 <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 67: Line 51:
 
See [[Libraries_and_tools/Database_interfaces|Databases]]
 
See [[Libraries_and_tools/Database_interfaces|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:
  +
  +
* [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.
  +
  +
== 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:
   
Add more problem domains that you feel we need libraries for!
+
* Debian packages ranked by:
  +
** [http://popcon.debian.org/source/by_inst Installations]
  +
** [http://popcon.debian.org/source/by_vote Votes]

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.

Contents

[edit] 1 Existing libraries (by problem domain)

See the full libraries list.

[edit] 1.1 GUIs

See GUI libraries

[edit] 1.2 High performance string IO

See String libraries

[edit] 1.3 Binary IO

See Binary IO

[edit] 1.4 Compression

See Compressing data

[edit] 1.5 Encryption

See Crypto libraries

[edit] 1.6 Web frameworks

See Web frameworks

[edit] 1.7 XML processing

See XML handling

[edit] 1.8 Database access

See Databases

[edit] 2 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:

[edit] 3 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: