github.com/Riey/xim-rs ↗
XIM protocol parser and handler in Rust
Open this visualization on its own page →
Contributors
1
Lines of Code
284
From
2020-12-14
To
2020-12-23
About Riey/xim-rs
xim-rs is a Rust implementation of the XIM (X Input Method) protocol, which enables input method communication between X11 clients and servers. The project provides protocol parsing and handling functionality, organized into three main components: xim (X client library bindings), xim-parser (message reading and writing), and xim-gen (a protocol parser generator). It supports both the xlib and x11rb X11 bindings, with full client support for both libraries and server support specifically for x11rb.
The project implements core XIM protocol features including message parsing, basic protocol operations, and an attribute builder. The implementation currently focuses on native endian support and handles real-world use cases by omitting rarely-used features like authentication and string conversion. The codebase maintains a minimum supported Rust version of 1.82, with a policy of bumping the minor version whenever the MSRV changes.
The project is demonstrated in real-world usage through an IME (input method editor) implementation called kime, which includes an XIM server frontend built with this library. Extension protocol support remains a planned feature for future development.