XCB: the X Protocol C Binding
[Posted September 27, 2006 by cook]
The
XCB project
aims to replace the
Xlib
interface to the
X Window System:
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.
Bart Massey and Jamey Sharp originally described XCB in a 2001 paper
entitled:
An X Protocol C Binding [PDF]. The XCB
project history
gives a look at some important project milestones and lists the tasks
that have been completed to date.
The XCB project aims to improve on a number of Xlib weaknesses.
Some of the XCB
features
include:
- A smaller memory footprint than Xlib.
- Support for latency hiding to address Xlib speed issues.
- Support for partial emulation of the Xlib API.
- Support for direct access to the X protocol.
- Support for the addition of new X extensions.
- Thread support designed from the beginning, not added-on like Xlib.
- Built on top of an XML description (xcb-proto) of the core X protocol.
- Development of the Xlib Compatibility Layer (XCL)
for running legacy applications.
Release candidate 1 of XCB 1.0, consisting of xcb-proto and libxcb,
was announced
on September 25:
We have provided this candidate release to allow for more widespread
review and testing before XCB 1.0. As of version 1.0, libxcb will
provide a stable API and ABI; future changes will consist only of
additions, and applications compiled against XCB 1.0 or newer will work
with all future versions of XCB. Barring discovery of serious issues
with the API, we do not anticipate any API changes between this release
and the 1.0 release.
We would greatly appreciate API review in this final release candidate
period.
Other changes in this release include:
a new API naming convention, new include directory conventions,
an improved error handling plan, a more resilient connection error handling
system, removal of deprecated functions, a split of the GIT repository,
and bug fixes.
For more information on XCB, see the
XCB API definition,
the
XCB Tutorial, the
XCB Developer's Guide and
other publications on XCB.
(
Log in to post comments)