Cairo is een vrije bibliotheek met een platformonafhankelijke API voor vectorafbeeldingen. Cairo kan gebruikt worden op een groot aantal platformen (backends). Het gebruikt hardwareacceleratie indien mogelijk.

Cairo is beschikbaar onder de GNU Lesser General Public License (LGPL) en Mozilla Public License. Cairo is geschreven in C en er zijn bindings beschikbaar voor andere programmeertalen, zoals Haskell, Java, Perl, Python, Scheme, Smalltalk en Vala.

Geschiedenis 
Het project werd opgestart door Keith Packard en Carl Worth voor het X Window System. Het project heette destijds Xr of Xr/Xc. De naam werd veranderd om te benadrukken dat het een cross-platform bibliotheek was en niet alleen voor het X Window System. De naam Cairo is afgeleid uit de Xr naam: Xr lijkt op de Griekse letters chi en rho en het Italiaanse woord chiaros betekent licht/helder.

Werking 

Cairo maakt gebruik van de volgende concepten: Source, Mask en Surface. Op de Mask kunnen eenvoudige vormen of woorden getekend/geschreven worden. De Source bevat een kleur, een gradiënt of een afbeelding, zoals een bitmap- of vectorafbeelding. Het uiteindelijke resultaat, zichtbaar op een Surface, wordt verkregen door de Source en de Mask te combineren.

Backends 
Cairo kan gebruikt worden voor de volgende backends:

 X Window System
 Quartz
 Win32
Afbeeldingsbuffers
Bestandsformaten: PNG, PostScript, PDF, SVG, DirectFB
 OpenGL (via glitz)
 XCB
 BeOS
 OS/2

Gebruik 

Cairo is populair in opensourcesoftware voor renderen in 2D op meerdere platformen:

 GTK+ (sinds versie 2.8) gebruikt Cairo voor het renderen van de meeste widgets.
Het Mono-platform (inclusief Moonlight) gebruikt Cairo voor de bewerkingen in de GDI+ (libgdiplus) en System.Drawing naamruimten.
Mozilla Firefox gebruikt Cairo in de Gecko layout engine die gebruikt wordt door verscheidene Mozillaprogramma's. Gecko 1.8 gebruikt Cairo voor het renderen van SVG en <canvas>-elementen. Gecko 1.8 wordt gebruikt in Mozilla Firefox 2.0 en SeaMonkey 1.0. In Gecko 1.9 (in Mozilla Firefox 3.0) wordt Cairo gebruikt voor het weergeven van webpagina's en ook voor het renderen van de grafische gebruikersomgeving (XUL).
De WebKit layout engine gebruikt Cairo in de GTK+ port. Cairo wordt ook gebruikt voor SVG en <canvas>-elementen.
De Poppler-bibliotheek gebruikt Cairo voor het weergeven van PDF-bestanden.
 Inkscape (vanaf 0.46) gebruikt Cairo voor het weergeven van de randen (outline mode) van een afbeelding en het exporteren van PDF- en PostScript-bestanden.
De grafische gebruikersomgeving Workbench in AmigaOS 4.1 is gebaseerd op de Cairo-bibliotheek. De grafische gebruikersomgeving van het besturingssysteem is hierdoor geheel gebaseerd op vectorafbeeldingen waardoor gebruikers bijvoorbeeld geheel kunnen in- en uitzoomen.
 Pango kan gebruikt worden met Cairo om tekst weer te geven.

Externe link 
 Projectpagina

Application programming interface
X Window System
GNOME
Freedesktop.org
Computerbibliotheek
Software geschreven in C