14 releases (breaking)
Uses new Rust 2021
|0.11.0||Nov 18, 2022|
|0.10.1||Jun 15, 2022|
|0.9.0||Aug 29, 2021|
|0.8.1||Mar 10, 2021|
|0.2.0||Nov 2, 2019|
#12 in Unix APIs
79,331 downloads per month
Used in 195 crates (28 directly)
X11 rust bindings
Feel free to open issues for any problems or questions you might have. A comparison with some other Rust X11 libraries is available in an extra document.
This crate uses a code generator that is implemented in Rust. A copy of the generated code is included, so you do not need to run the generator unless you have modified the definitions or the generator itself.
The code generator uses the X11 XML description from
xcb-proto. A copy of
xcb-proto that comes with the source code is used.
The interaction with libxcb via
XCBConnection requires at least libxcb 1.12.
Does this support async/await
No. If you have so many X11 connections that this would matter, you are doing something wrong. Also, it encourages people to write high-latency code instead of sending multiple requests and only afterwards wait for the replies.
Most X11 extensions are feature-gated. For example, to use the shared memory
shm feature has to be enabled.
all-extensions feature just enables all X11 extensions.
allow-unsafe-code feature enables
XCBConnection. This uses
libxcb internally and allows sharing the underlying
with other code.
cursor feature enables X11 cursor support via the
cursor module. This
module helps with loading cursors from the current cursor theme.
The full X11 protocol is supported by this library. All extensions that are
xcb-proto can be used and even FD
passing with the server is supported.
The changelog is available in a separate file.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
The subdirectory xcb-proto-1.15.2 contains a vendored copy of the package of the same name. It is covered by the MIT license. See xcb-proto-1.15.2/COPYING for details.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.