The c2hs package

[ Tags: development, gpl, program ] [ Propose Tags ]

C->Haskell assists in the development of Haskell bindings to C libraries. It extracts interface information from C header files and generates Haskell code with foreign imports and marshaling. Unlike writing foreign imports by hand (or using hsch2s), this ensures that C functions are imported with the correct Haskell types.

[Skip to Readme]


Versions 0.15.0, 0.15.1, 0.16.0, 0.16.2, 0.16.3, 0.16.4, 0.16.5, 0.16.6, 0.17.1, 0.17.2, 0.18.1, 0.18.2, 0.19.1, 0.20.1, 0.21.1, 0.22.1, 0.23.1, 0.24.1, 0.25.1, 0.25.2, 0.26.1, 0.26.2, 0.27.1, 0.28.1, 0.28.2
Dependencies array, base (>=2 && <4.7), containers, directory, filepath, language-c (>= && <0.4.0), pretty, process [details]
License GPL-2
Copyright Copyright (c) 1999-2007 Manuel M T Chakravarty 2005-2008 Duncan Coutts 2008 Benedikt Huber
Author Manuel M T Chakravarty
Category Development
Home page
Bug tracker
Source repository head: darcs get
Uploaded Wed Oct 31 21:03:01 UTC 2012 by DuncanCoutts
Updated Sun Jan 15 21:05:30 UTC 2017 by HerbertValerioRiedel to revision 1
Distributions Arch:0.28.2, Debian:0.27.1, FreeBSD:0.26.1, LTSHaskell:0.28.2, NixOS:0.28.2, Stackage:0.28.2, Tumbleweed:0.28.1
Executables c2hs
Downloads 20740 total (581 in the last 30 days)
Rating 0.0 (0 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs not available [build log]
Successful builds reported [all 8 reports]
Hackage Matrix CI



Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for c2hs-0.16.4

[back to package description]
               C->Haskell - Haskell Interface Generator              -*-text-*-

C->Haskell is a interfacing tool that eases Haskell access to C libraries.
The tool gets information about the C data type definitions and function
signatures by analysing the C header files of the library.  It uses this
information to compute the missing details in the template of a Haskell
module---called the binding file---that implements a Haskell binding to the C
library.  Hooks embedded in the binding file signal where, which, and how C
objects are accessed from Haskell.  The Haskell code in the binding file
determines Haskell types signatures and marshaling details.  Further
information is at

Also see the tutorial in `doc/c2hs/'.


  AUTHORS       -- Author information
  COPYING       -- GNU General Public License (GPL)
  INSTALL       -- Help on installing this package
  README        -- This file
  Setup.hs      -- Cabal build script
  TODO          -- Open problems, bugs, and ideas for future extensions
  c2hs.cabal    -- Cabal package specification
  doc           -- Documentation
  src           -- Source code
  src/C2HS      -- Main program sources
  src/Main.hs   -- Compilation driver
  tests         -- Small test cases

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= INSTALLING =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

See the file `INSTALL'.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COPYLEFT -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

This system is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later

This system is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this system; if not, write to the Free Software Foundation, Inc., 675 Mass
Ave, Cambridge, MA 02139, USA.

NOTE: HOWEVER, all code included into generated bindings is under a BSD-style
      license that does not place any restrictions on the license of the
      inteface produced with C->Haskell (ie, closed proprietary licenses are
      possible, too).  In other words, I do not care what you use C->Haskell
      for or to whom you are giving C->Haskell or any interfaces generated with
      C->Haskell, only if you modify or improve C->Haskell itself, you have to
      contribute your changes back to the community.  Nevertheless, I will of
      course be particularly delighted if you choose to make your work freely

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- CREDITS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

See the file `AUTHORS'.