HSFFIG: Generate FFI import declarations from C include files

[ bsd3, ffi-tools, library, program ] [ Propose Tags ]

Haskell FFI Binding Modules Generator (HSFFIG) is a tool that parses C library include files (.h) and generates Haskell Foreign Functions Interface import declarations for all functions, #define'd constants (where possible), enumerations, and structures/unions (to access their members). It is assumed that the GNU C Compiler and Preprocessor are used. Auto-generated Haskell modules may be imported into an application to get access to the foreign library's functions and variables.

The package provides a small library that programs using auto-generated imports have to link to (specify HSFFIG as one of build-depends), and two executable programs:

  • hsffig: a filter program reading pre-processed include files from standard input, and producing one large .hsc file to be processed by hsc2hs, and possibly cut into pieces by modsplit. See http://www.haskell.org/haskellwiki/HSFFIG/Tutorial for more information.

  • ffipkg: a wrapper over hsffig which automates the process of building a Cabal package out of C include files provided by running the preprocessor, hsffig, the splitter, and preparing the files necessary to build a package. See http://www.haskell.org/haskellwiki/FFI_imports_packaging_utility for more information.

Please note that hsffig and ffipkg will likely not work properly with C++ include files.




Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 1.1, 1.1.2, 1.1.3
Dependencies array, base (>=4 && <5), Cabal (>=1.5), containers, directory, filepath, parsec (<3), process, unix [details]
License BSD-3-Clause
Copyright 2005 - 2009, Dimitry Golubovsky
Author Dimitry Golubovsky
Maintainer golubovsky@gmail.com
Category FFI tools
Home page http://www.haskell.org/haskellwiki/HSFFIG
Uploaded by DmitryGolubovsky at 2009-10-16T00:59:56Z
Reverse Dependencies 2 direct, 0 indirect [details]
Executables testparser, hsffig, ffipkg
Downloads 3182 total (10 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]