cairod 0.0.1-alpha.3+1.10.2

cairo bindings and wrappers for the D programming language.

To use this package, put the following dependency into your project's dependencies 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 example 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 name | Cairo C feature | Description | | -------------------- | -------------------------- | ----------------------------------------------- | | CairoPNG | CAIROHASPNGFUNCTIONS | Enable loading/saving of PNG files | | CairoPSSurface | CAIROHASPSSURFACE | Enable module | | CairoPDFSurface | CAIROHASPDFSURFACE | Enable cairo.pdf module | | CairoSVGSurface | CAIROHASSVGSURFACE | Enable cairo.svg module | | CairoFTFont | CAIROHASFTFONT | Enable cairo.ft module (FreeType fonts) | | CairoWin32Surface | CAIROHASWIN32SURFACE | Enable cairo.win32 module (rendering) | | CairoWin32Font | CAIROHASWIN32FONT | Enable cairo.win32 module (fonts) | | CairoXlibSurface | CAIROHASXLIBSURFACE | Enable cairo.xlib module | | CairoXCBSurface | CAIROHASXCBSURFACE | Enable cairo.xcb module | | CairoDirectFBSurface | CAIROHASDIRECTFBSURFACE | Enable 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.

Authors: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

statistics are temporarily disabled.