C interface to the X Window System protocol, which replaces the traditional Xlib interface.
Go to file
Demi Marie Obenour 48dbb5b6ca Avoid undefined behavior due to strict aliasing
This does not make XCB conform to the C99+ strict aliasing rules, but it
does use attributes to prevent GCC and Clang from assuming the rules are
followed in the cases where XCB does violate them.

Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
2024-08-29 17:53:44 -04:00
doc Improve tutorial example 2022-09-28 22:39:32 +00:00
m4 config: issue an error if DRI3 is requested, but sendfds is not available 2014-08-06 13:26:08 +02:00
man Escape \n to display properly in xcb-requests man page 2015-04-29 23:23:05 -07:00
src Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
tests tests: fix -Werror=discarded-qualifiers errors in check_public.c 2024-03-02 11:47:47 -08:00
tools Match only XCB-namespaced XID generators when converting to xcb_generate_id. 2006-10-15 12:34:30 -07:00
.autom4te.cfg Use build-aux as autom4te cache directory 2013-08-15 00:35:07 +02:00
.gitignore gitignore: add files generated by make check 2020-11-18 23:06:32 -05:00
.gitlab-ci.yml gitlab CI: use latest xcbproto from git to build against 2023-08-20 11:36:40 -07:00
COPYING Fix the year in COPYING. 2006-04-27 17:32:20 -07:00
Makefile.am Build DOUBLE-BUFFER extension. 2022-06-02 13:27:48 -04:00
NEWS Release libxcb 1.14 2020-02-22 12:20:08 -08:00
README.md Update README for gitlab migration 2019-02-16 13:41:28 -08:00
autogen.sh autogen: add default patch prefix 2022-07-24 14:26:03 -07:00
check-pc-requires Move internal/private dependencies to Requires.private 2014-10-03 23:53:54 +02:00
configure.ac Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-composite.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-damage.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-dbe.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-dpms.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-dri2.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-dri3.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-ge.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-glx.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-present.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-randr.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-record.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-render.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-res.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-screensaver.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-shape.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-shm.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-sync.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-xevie.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-xf86dri.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-xfixes.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-xinerama.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-xinput.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-xkb.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-xprint.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-xselinux.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-xtest.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-xv.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb-xvmc.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00
xcb.pc.in Avoid undefined behavior due to strict aliasing 2024-08-29 17:53:44 -04:00

About libxcb

libxcb provides an interface to the X Window System protocol, which replaces the traditional Xlib interface. It has several advantages over Xlib, including:

  • size: small, simple library, and lower memory footprint
  • latency hiding: batch several requests and wait for the replies later
  • direct protocol access: interface and protocol correspond exactly
  • proven thread support: transparently access XCB from multiple threads
  • easy extension implementation: interfaces auto-generated from XML-XCB

Xlib also uses XCB as a transport layer, allowing software to make requests and receive responses with both, which eases porting to XCB. However, client programs, libraries, and toolkits will gain the most benefit from a native XCB port.

More information about xcb is available from our website:

https://xcb.freedesktop.org/

Please report any issues you find to the freedesktop.org bug tracker at:

https://gitlab.freedesktop.org/xorg/lib/libxcb/issues

Discussion about XCB occurs on the XCB mailing list:

https://lists.freedesktop.org/mailman/listinfo/xcb

You can obtain the latest development versions of XCB using GIT from the libxcb code repository at:

https://gitlab.freedesktop.org/xorg/lib/libxcb

For anonymous checkouts, use:

git clone https://gitlab.freedesktop.org/xorg/lib/libxcb.git

For developers, use:

git clone git@gitlab.freedesktop.org:xorg/lib/libxcb.git