# Introduction The X protocol C-language Binding (XCB) is a replacement for Xlib [[featuring|Features]] a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility. # News May 2022: [xcb-proto 1.15](https://lists.x.org/archives/xorg-announce/2022-May/003163.html) and [libxcb 1.15](https://lists.x.org/archives/xorg-announce/2022-May/003164.html) 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](https://lists.x.org/archives/xorg-announce/2020-February/003038.html) and [libxcb 1.14](https://lists.x.org/archives/xorg-announce/2020-February/003039.html) 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](https://lists.freedesktop.org/archives/xcb/2018-March/011090.html) and [libxcb 1.13](https://lists.freedesktop.org/archives/xcb/2018-March/011091.html) were released. In addition to fixing bugs, this enables new and completed versions of some protocols. May 2016: [xcb-proto 1.12](https://lists.x.org/archives/xorg-announce/2016-May/002693.html) and [libxcb 1.12](https://lists.x.org/archives/xorg-announce/2016-May/002694.html) were released. September 2015: [libxcb 1.11.1](http://lists.x.org/archives/xorg-announce/2015-September/002633.html) was released. This fixes some thread-related issues and adds 64-bit versions of some APIs. August 2014: [xcb-proto 1.11](http://lists.x.org/archives/xorg-announce/2014-August/002468.html) and [libxcb 1.11](http://lists.x.org/archives/xorg-announce/2014-August/002469.html) were released. This is again mostly a bug-fix release. December 2013: [xcb-proto 1.10](http://lists.x.org/archives/xorg-announce/2013-December/002382.html) and [libxcb 1.10](http://lists.x.org/archives/xorg-announce/2013-December/002383.html) 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](http://lists.x.org/archives/xorg-announce/2013-May/002230.html) was released, fixing the python code to work with Python 3, and fixing an integer overflow in the read_packet() function ([CVE-2013-2064](http://www.x.org/wiki/Development/Security/Advisory-2013-05-23/ "X.Org Security Advisory: May 23, 2013")) 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: - [xcb-proto 1.8](http://lists.freedesktop.org/archives/xcb/2012-October/007892.html) - [libxcb 1.9](http://lists.freedesktop.org/archives/xcb/2012-October/007893.html) # Download - You can obtain released versions of XCB from . - Follow the instructions from the [[developer's guide|DevelopersGuide]] 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|DevelopersGuide]]. - **Mailing list**: Discussion of XCB and Xlib/XCB is through the [XCB mailing list](http://lists.freedesktop.org/mailman/listinfo/xcb). - **IRC**: XCB developers also hang out on [[IRC]], and have occasional [[meetings]]. - Of course, there's still a lot [[to do|TODO]] . # Documentation - The [[XCB API|XcbApi]] is documented. There is also a [[tutorial]] and some random [[notes|XcbNotes]]. - People wanting to implement higher level applications can use [[xcb-util|XcbUtil]]. - XCB is built atop an XML description of the X core protocol and common extension protocols called [[XML/XCB|XmlXcb]]. This protocol can be used in other interesting ways. Documentation of the X Window System protocol is also available at [X.org's website](http://www.x.org/releases/X11R7.7/doc/index.html#protocol), 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|XlibXcb]]. - There is automatically-generated [documentation for the XCB protocol bindings](http://xcb.freedesktop.org/manual/modules.html). - The Windows (32 bit) port of XCB will be merged into the main code base soon. You can read more on that [[here|Win32Port]]. # Miscellaneous - [[The XCB logo|KittyLogo]] - The XCB project has a long [[history]], during which it has produced many academic [[publications]]. Various projects have [[adopted|adoption]] XCB.