+#include <bindings.dsl.h>
+#include <HsBaseConfig.h>
+#include <rrd_client.h>
+
+-- |<http://oss.oetiker.ch/rrdtool/doc/librrd.en.html>
+--
+-- <http://oss.oetiker.ch/rrdtool/doc/rrdcached.en.html>
+
+module Bindings.Librrd.Client where
+#strict_import
+
+#cinline RRDCACHED_DEFAULT_ADDRESS, CString
+#cinline RRDCACHED_DEFAULT_PORT , CString
+#cinline ENV_RRDCACHED_ADDRESS , CString
+
+#ccall rrdc_connect , CString -> IO CInt
+#ccall rrdc_is_connected, CString -> IO CInt
+#ccall rrdc_disconnect , IO CInt
+
+#ccall rrdc_update, CString -> CInt -> Ptr CString -> IO CInt
+
+#ccall rrdc_flush , CString -> IO CInt
+#ccall rrdc_flush_if_daemon, CString -> CString -> IO CInt
+
+-- Helper definitions for rrdc_stats_t
+#num RRDC_STATS_TYPE_GAUGE
+#num RRDC_STATS_TYPE_COUNTER
+
+#starttype struct rrdc_stats_s
+#field name , CString
+#field type , Word16
+#union_field value.counter, Word64
+#union_field value.gauge , CDouble
+#field next , Ptr <rrdc_stats_s>
+#stoptype
+#synonym_t rrdc_stats_t, <rrdc_stats_s>
+
+#ccall rrdc_stats_get , Ptr (Ptr <rrdc_stats_t>) -> IO CInt
+#ccall rrdc_stats_free, Ptr <rrdc_stats_t> -> IO ()