Introduction

The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility.

News

February 2020: xcb-proto 1.14 and libxcb 1.14 were released. In addition to fixing bugs, this brings compatibility with check >= 0.13 and adds xcb_total_read() and xcb_total_written() APIs.

March 2018: xcb-proto 1.13 and libxcb 1.13 were released. In addition to fixing bugs, this enables new and completed versions of some protocols.

May 2016: xcb-proto 1.12 and libxcb 1.12 were released.

September 2015: libxcb 1.11.1 was released. This fixes some thread-related issues and adds 64-bit versions of some APIs.

August 2014: xcb-proto 1.11 and libxcb 1.11 were released. This is again mostly a bug-fix release.

December 2013: xcb-proto 1.10 and libxcb 1.10 were released, this time mainly fixing some API and ABI issues introduced with libxcb 1.9.2. See the linked announcements for more details.

May 2013: libxcb 1.9.1 was released, fixing the python code to work with Python 3, and fixing an integer overflow in the read_packet() function (CVE-2013-2064)

October 2012: New releases of the XCB packages have been published, including autogenerated man pages for XCB API's - see the linked announcements for full details of what's changed in each one:

Download

You can obtain released versions of XCB from http://xcb.freedesktop.org/dist.

Follow the instructions from the developer's guide to build, except that you can use released versions of the dependencies, and you don't need git, automake, autoconf, or libtool.

Development

If you wish to work on XCB, please read the developer's guide.

Mailing list : Discussion of XCB and Xlib/XCB is through the XCB mailing list.

: Discussion of XCB and Xlib/XCB is through the XCB mailing list. IRC : XCB developers also hang out on IRC, and have occasional meetings.

: XCB developers also hang out on IRC, and have occasional meetings. Of course, there's still a lot to do .

Documentation

The XCB API is documented. There is also a tutorial and some random notes.

People wanting to implement higher level applications can use xcb-util.

XCB is built atop an XML description of the X core protocol and common extension protocols called XML/XCB. This protocol can be used in other interesting ways. Documentation of the X Window System protocol is also available at X.org's website, and can be used in combination with XCB documentation as XCB functions largely reflect the protocol.

To aid in porting applications, you can configure Xlib to use XCB for the transport layer. We call this Xlib/XCB.

There is automatically-generated documentation for the XCB protocol bindings.

The Windows (32 bit) port of XCB will be merged into the main code base soon. You can read more on that here.

Miscellaneous