1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# 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 <http://xcb.freedesktop.org/dist>.
- 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.
|