XCB
# XCB

XCB (X C Binding) es un binding para el lenguaje C de X Window System. Está implementado como software libre y pretende reemplazar la biblioteca Xlib. El proyecto fue iniciado en 2001 por Bart Massey.

Xlib/XCB provee compatibilidad a nivel de interfaz de aplicación binaria para Xlib y XCB. Xlib/XCB usa la capa de protocolo de Xlib, pero reemplaza la capa de transporte de Xlib por la de XCB, y provee acceso a la conexión XCB para hacer un uso directo de XCB.

## Objetivos

Los objetivos principales de XCB son:

* Reducción del tamaño y la complejidad de la biblioteca;
* acceso directo para protocolo X11.

Los objetivos secundarios incluyen hacer una interfaz C asíncrona, facilitando la programación multihilo y haciendo más fácil la implementación de extensiones (vía descripciones de protocolo XML).

Las descripciones del protocolo base y de extensión están en XML, con los bindings C creados vía scripts Python. (Versiones previas usaban XSLT y M4.) Un tercer objetivo es replantear esas descripciones del protocolo para la creación de documentación del protocolo, más bindings para otros lenguajes, y server-side stubs.

Massey y otros han trabajado para probar porciones clave de XCB como formalmente correctas, usando notación Z. (Se sabe de hace tiempo que Xlib contiene errores.)

## Ejemplo

XCB tiene una API comparable a la de Xlib, pero de ligeramente más bajo nivel, como se puede ver en este ejemplo.

## Logotipo

El logotipo de XCB fue creado por Gearóid Molloy, autor del Webcómic Neko the Kitty, y lo donó al proyecto.

