|
|
Subscribe / Log in / New account

XCB: the X Protocol C Binding

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.


to post comments

XCB: the X Protocol C Binding

Posted Sep 29, 2006 16:28 UTC (Fri) by tjc (guest, #137) [Link]

Development of the Xlib Compatibility Layer (XCL) for running legacy applications.
It looks like XCL has been replaced by Xlib/XCB:

http://xcb.freedesktop.org/wiki/XlibXcb

XCB: the X Protocol C Binding

Posted Sep 29, 2006 17:44 UTC (Fri) by tjc (guest, #137) [Link]

This paper ("other publications") titled "How Xlib is Implemented (And What We're Doing About It)" is well worth the read:

http://www.usenix.org/events/usenix04/tech/freenix/full_papers/sharp/sharp_html/index.html

From the paper:

When built with reasonable compiler optimizations, XCB is 26kB compared with 750kB for Xlib.
I like it already. :-)


Copyright © 2006, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds