XCB: An X Protocol C Binding


The standard X Window System binding for the C programming language, Xlib, is a very successful piece of software across a wide range of applica-tions. However, for many modern uses, Xlib is not an ideal fit: its size, complexity, difficulty of ex-tension and synchronous interface are particularly problematic.

The XCB ÒX Protocol C BindingÓ, currently under development, is a response to these and other con-cerns. XCB is intended to be a simpler and more direct binding of protocol objects to C functions; careful design of the XCB API and internal data structures and thorough modularization provides a solution that is size and time efficient, maintain-able, easy to use both by single-threaded and multi-threaded applications and easily extensible. Some features of Xlib have been sacrificed in achieving these goals, notably i18n support and convenience buffering and caching features, but the cost will likely be worth it for toolkit developers and for those looking to write specialized applications lay-ered atop the XCB API.

@inproceedings {270853,
author = {Bart Massey},
title = {{XCB}: An X Protocol C Binding},
booktitle = {XFree86 Technical Conference (
XFree86 Technical Conference)},
year = {2001},
address = {Oakland, CA
url = {https://www.usenix.org/conference/xfree86-technical-conference/xcb-x-protocol-c-binding},
publisher = {USENIX Association},
month = nov