[![crates.io](http://meritbadge.herokuapp.com/smithay-client-toolkit)](https://crates.io/crates/smithay-client-toolkit)
[![Build Status](https://travis-ci.org/Smithay/client-toolkit.svg?branch=master)](https://travis-ci.org/Smithay/client-toolkit)
# Smithay's Client Toolkit
This crate is a toolkit for writing wayland clients in rust, on top of [wayland-client](https://crates.io/crates/wayland-client).
Currently a work in progress, it currently provides the following utilities:
- Automatic binding of general wayland globals (`wl_compositor`, `wl_shm`, etc..)
- Abstraction to create windows (aka toplevel surfaces), abstracting the interaction
with the shell (`xdg_shell` or `wl_shell`) and the drawing of decorations
- Wrapper for `wl_keyboard` for automatic keymap interpretation using `libxkbcommon.so`.
- Utilites for creating dpi aware surfaces.
## Documentation
The documentation for the master branch is [available online](https://smithay.github.io/client-toolkit/).
The documentation for the releases can be found on [docs.rs](https://docs.rs/smithay-client-toolkit).
## Requirements
Requires at least rust 1.22 to be used (using bitflags 1.0 for associated constants), and version 1.12 of the
wayland system libraries.