ANN: bindings-0.1

Maurício briqueabraque at yahoo.com
Thu Apr 30 16:00:54 EDT 2009


Hi,

http://hackage.haskell.org/cgi-bin/hackage-scripts/package/bindings

This is a package aimed at library writers, not to the everyday
Haskell programmer. This the beggining of my goal to create a
set of packages like:

bindings-common
bindings-sqlite3
bindings-openusb
bindings-gsl
bindings-yourFavoriteLibrary


Those are not going to be Haskell style bindings. Instead,
what I want is to create a set of low level bindings to the
best libraries available, so that if you want to write your
Haskell wrap to a foreign library using the latest Haskell
features, you can do that relying on low level bindings that
are comprehensive, well tested and well behaved, and with all
problems regarding building and portability already solved in
the best way the community was able to do.

Beneficts you get by using it:

- If 10 people are trying to write modules over, say, 'gsl',
all of then will help contribute with bug-hunting and thoughts
to the common package 'bindings-gsl'.

- Use your time to write cool experiences with GADTs and Template
Haskell. Leave the boring low level stuff to 'bindings-*'.

- HUnit tests can be created to all bindings. If you suggest
one in a ticket, and it does hold, it will be added to a test
package.


If you know library 'foo' very well, you won't need to read the
documentation for 'bindings-foo'. A set of guidelines ensure
that all these low-level bindings can be used after the original
library documentation. If you know the guidelines and you know
'foo', you can use 'bindings-foo' after reading in the worst
case just a few comments.

These guidelines, actually, are community driven. You can find
the current set here:

http://hackage.haskell.org/packages/archive/bindings/0.1/doc/html/Bindings.html

If you want changes or features, just open a ticket at package
home:

http://bitbucket.org/mauricio/bindings


What I really need now is help from libraries experts. If
you know your favorite library very well (specially its build
process and compile time options) and are willing to answer a
few questions on how it works, I'll add a binding to it.

This package is a byproduct of professional, paid work. If it
achieves some success, it will be maintained in the long term
and, if something important depends on it, I'm willing to give
maintenance to someone better than me.

Best,
Maurício



More information about the Libraries mailing list