summaryrefslogtreecommitdiff
path: root/index.mdwn
blob: 687ccd43ef3846ef469e2727a607daa5e8d4119c (plain)
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.