[Haskell] ANN: craftwerk-0.1, craftwerk-cairo-0.1, craftwerk-gtk-0.1
malte.harder at googlemail.com
Mon Mar 14 23:22:26 CET 2011
I just released the first version of the Craftwerk graphics library for
2d vector graphics. Craftwerk is intended to act as an abstract
interface to different backend drivers. The library itself has a TikZ
(http://sourceforge.net/projects/pgf) driver builtin to output vector
graphics for use in LaTeX documents. The craftwerk-cairo library
supplies a Cairo output function to the library. The aim is to support
these two backends in a seamless manner such that graphics created with
either backend are not or nearly not distinguishable.
The third package (craftwerk-gtk) contains convenience functions to
display graphics created with craftwerk directly in a Gtk window,
including the basic zooming, PDF & TikZ export via a file chooser
dialog. It also allows to create a simple user interface that passes
options to the rendering function.
The feature support is rather rudimentary at the moment, but for current
Cairo users most features should be already available from within the
craftwerk API. The aim is to support more high level functions like TikZ
The project started when I realized that I need to prepare a lot of
visualizations at university twice, once for display and once for print.
I hope that this library proves to be useful for people with similar
tasks. A great thing would be if the Chart library allows to plug
another backend in. I haven't really looked into that, but this would
allow me to leave Gnuplot and R behind for most purposes and at the same
time get higher quality output that is better integrable.
I started learning Haskell only half a year ago and this is my first
real project. So far I have to say that I enjoy it very much. Therefore,
if you find some weird constructions or have any comments about the
design of the library, I'm looking forward for any feedback!
The source repository can be found under:
and packages here:
malte.harder at gmail.com
More information about the Haskell