[Xcb] Wiki spring cleaning

Ian Osgood iano at quirkster.com
Mon May 1 10:30:20 PDT 2006

Now that we've made a release, we should prepare for the huge flood  
of new developers by updating our wiki web site.

Josh proposed streamlining the front page, so that it serves as a  
single-screen introduction to the project, aimed at XCB users.  
Cairo's site at http://cairographics.org/ seems like a good model.  
Main pages would have only current information, with older  
information moved to XcbHistory.  Information on developing XCB  
itself would move to XcbDevelopersGuide.  The new site structure  
would be:

xcb (one screen introduction, release download, index)
	XcbDevelopersGuide (availability, build instructions, resources)
		XcbDevelopmentPlan (needs an update!)
		UsingXcb (needs update?)
	XcbHistory (papers, acknowledgements, XCL, M4)

Proposed front page:

The X protocol C-language Binding (XCB) is a replacement for Xlib  
having the advantages of:
* Small footprint: Xlib is a large piece of code, and it is difficult  
to make it smaller.
* Latency hiding: Xlib requests requiring a reply are effectively  
synchronous: they block until the reply appears, whether the result  
is needed immediately or not.
* Direct access to the protocol: Xlib does quite a bit of caching,  
layering, and similar optimizations. While this is normally a  
feature, it makes it difficult to simply emit specified X protocol  
requests and process specific responses.
* Threaded applications: While Xlib does attempt to support  
multithreading, the API makes this difficult and error-prone.
* New extensions: The Xlib infrastructure provides limited support  
for the creation of X extension client side code.

You can obtain released versions of XCB from http:// 
xcb.freedesktop.org/dist .  Follow the instructions from the  
XcbDevelopersGuide to build, except that you can use released  
versions of the dependencies, and you don't need git, automake,  
autoconf, or libtool.

The XcbApi is documented. There is also a [http:// 
gitweb.freedesktop.org/?p=xcb;a=tree;f=xcb/doc/tutorial tutorial].

To aid porting applications, you can configure Xlib to use XCB for  
the transport layer.  We call this [:XlibXcb: Xlib/XCB].

If you wish to work on XCB, please read the XcbDevelopersGuide.

You may also wish to read the XcbHistory for technical papers and  


Let me know what you think.


More information about the Xcb mailing list