Xlib is the legacy strategy for interacting with the X server. It has since been replaced by libxcb, which is lighter and has fewer soundless holes. x11rb wraps around libxcb and reimplements the protocol parsing logic in safe Rust, further reducing the number of places where unsound logic can occur.
List of places in winit where Xlib still lurks:
Discussion questions:
- I want to be able to replace
x11-dl with tiny-xlib, is this possible?
- Do we want to add a feature to remove
Xlib entirely and just use XCB?
- Going further, do we want to add a feature to remove these two external libraries from our X backend altogether and just use
x11rb's pure-Rust backend?
- Is this also available for Wayland?
Xlib is the legacy strategy for interacting with the X server. It has since been replaced by libxcb, which is lighter and has fewer soundless holes.
x11rbwraps aroundlibxcband reimplements the protocol parsing logic in safe Rust, further reducing the number of places where unsound logic can occur.List of places in
winitwhere Xlib still lurks:SelectXkbEvents(cc Revert select_xkb_events to its previous impl #3087)Discussion questions:
x11-dlwithtiny-xlib, is this possible?Xlibentirely and just use XCB?x11rb's pure-Rust backend?