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

April 2024: xcb-proto 1.17 and libxcb 1.17 were released. In addition to fixing bugs, this adds support for Present 1.4 and DRI3 1.4.

August 2023: xcb-proto 1.16 and libxcb 1.16 were released. In addition to fixing bugs, this adds support for DPMS 1.2 and documents some previously implemented X11 extensions.

May 2022: xcb-proto 1.15 and libxcb 1.15 were released. In addition to fixing bugs, this brings compatibility with check >= 0.15 and enables some new protocols like XI 2.4.

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.
  • IRC: 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