Starting in 2002, a few X developers began working on a lightweight client library for X11. The X C Binding (XCB) is exactly what its name implies: a binding from the X11 protocol to be C language. Each protocol message format has a corresponding C type; each interaction has a corresponding function. All the helper code that Xlib provides is gone, and not missed by most developers.
To provide backwards compatibility, the newer versions of Xlib use XCB at the core for providing the message encapsulation and transport. This means that it is possible to use both Xlib and XCB APIs in a single program, gradually migrating to just using XBC over time.