cairod ~master

cairo bindings and wrappers for the D programming language.

To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

cairoD Build Status

This is a D2 binding and wrapper for the cairo graphics library.

Currently cairoD targets cairo version 1.10.2.


API Documentation:


The cairoD library ships with some examples in the examples directory. Some of these examples are ported from, some are original. To build these examples, simply use dub:

dub run

On windows you have to manually copy the DLLs into the bin directory. Run

dub build

This will build the example and copy the executable to the bin directory. Then copy all DLLs from /lib/32 or /lib/64 into the bin directory and run the example.exe manually.

Some examples can directly present the results in a GTK2 or GTK3 window. Simply use the correct dub configurations:

dub run --config=gtk2
dub run --config=gtk3

GTK3 example image


You can use [dub] to make this library a dependency for your project.

Windows support

cairoD can be used on windows, but it requires cairo DLLs and matching import libraries. We provide a set of DLLs and import libraries in the lib directory. Copy the lib folder into your dub project and then use this dub configuration to support all windows compilers:

    "libs-windows-x86-dmd": ["lib/32/mars/cairo"],
    "libs-windows-x86-gdc": ["lib/32/msvc_mingw/cairo"],
    "libs-windows-x86-ldc": ["lib/32/msvc_mingw/cairo"],
    "libs-windows-x86_64": ["lib/64/cairo"],
    "copyFiles-windows-x86": ["lib/32/*.dll"],
    "copyFiles-windows-x86_64": ["lib/64/*.dll"]

Note: cairoD currently uses the windows-headers package for the Win32Surface. Use the CairoWindowsDruntime version if you want to use the windows bindings shipped with D version 2.070+.

Customizing the cairoD configuration

The cairo library provides certain features as optional extensions. CairoD does not provide access to these extensions by default. To enable the extensions, pass the matching version to your D compiler or specify the versions in your dub.json file:

"dependencies": {
    "cairod": {"version": "~>0.0.1"}
"versions": ["CairoPNG"]

The following versions are available:

version nameCairo C featureDescription
CairoPNGCAIROHASPNG_FUNCTIONSEnable loading/saving of PNG files
CairoPSSurfaceCAIROHASPS_SURFACEEnable module
CairoPDFSurfaceCAIROHASPDF_SURFACEEnable cairo.pdf module
CairoSVGSurfaceCAIROHASSVG_SURFACEEnable cairo.svg module
CairoFTFontCAIROHASFT_FONTEnable cairo.ft module (FreeType fonts)
CairoWin32SurfaceCAIROHASWIN32_SURFACEEnable cairo.win32 module (rendering)
CairoWin32FontCAIROHASWIN32_FONTEnable cairo.win32 module (fonts)
CairoXlibSurfaceCAIROHASXLIB_SURFACEEnable cairo.xlib module
CairoXCBSurfaceCAIROHASXCB_SURFACEEnable cairo.xcb module
CairoDirectFBSurfaceCAIROHASDIRECTFB_SURFACEEnable cairo.directfb module
CairoWindowsDruntime-Use instead of windows-headers


Distributed under the Boost Software License, Version 1.0.

See the accompanying file LICENSE10.txt or view it online.

  • Johannes Pfau
  • Andrej Mitrovic
0.0.1-alpha.3+1.10.2 2016-Feb-03
0.0.1-alpha.2+1.10.2 2015-Dec-20
0.0.1-alpha.1+1.10.2 2015-Dec-20
~master 2017-May-01
Show all 4 versions
Download Stats:
  • 29 downloads today

  • 140 downloads this week

  • 493 downloads this month

  • 155964 downloads total

Short URL: