#wm #platform-agnostic #cross-platform #manager #graphics


Minimal Rust code for creating a window, automatically choosing a backend window manager and graphics API

6 releases (3 breaking)

0.4.1 Nov 20, 2020
0.4.0 Jul 14, 2020
0.3.1 Feb 15, 2020
0.3.0 Oct 25, 2019
0.1.0 Jul 7, 2019

#21 in Rendering engine

Download history 17/week @ 2020-08-06 14/week @ 2020-08-13 20/week @ 2020-08-20 17/week @ 2020-08-27 32/week @ 2020-09-03 10/week @ 2020-09-10 9/week @ 2020-09-17 11/week @ 2020-09-24 49/week @ 2020-10-01 16/week @ 2020-10-08 8/week @ 2020-10-15 15/week @ 2020-10-22 12/week @ 2020-10-29 18/week @ 2020-11-05 17/week @ 2020-11-12 37/week @ 2020-11-19

75 downloads per month
Used in 2 crates



Website | GitHub | Changelog | Contributors | Tutorials


Minimal Rust code for creating a window, automatically choosing a backend window manager and graphics API.

Other Rust window creation libraries require you to build for a specific backend, so I made this crate to fix the issue. You can now make a program that runs Wayland on a machine that has Wayland installed, and will fall back to XCB if it's not installed. And, will run OpenGLES (eventually try Vulkan first, too) if it's installed, and fall back to OpenGL if it's not installed.

Since this crate is minimal, it doesn't even handle window decoration. If you want window decoration and GUI widgets, check out barg which depends on this crate.


Linux Window Managers

  • Wayland

Graphics APIs

  • OpenGLES


Other Window Managers

  • XCB
  • Windows WinAPI
  • Android
  • MacOS Cocoa
  • Redox
  • Nintendo Switch
  • XBOX
  • PlayStation
  • Wasm Canvas

Graphics APIs

  • OpenGL
  • WebGL
  • Vulkan


This crate is part of the cala project.


Contributors are always welcome! Whether it is a bug report, bug fix, feature request, feature implementation or whatever. Don't be shy about getting involved. I always make time to fix bugs, so usually a patched version of the library will be out soon after a report. Features take me longer, though. I'll also always listen to any design critiques you have. If you have any questions you can email me at jeronlau@plopgrizzly.com. Otherwise, here's a link to the issues on GitHub.

And, as always, make sure to always follow the code of conduct. Happy coding!


This repository is licensed under either of the following:

at your option.

Contribution Licensing

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above without any additional terms or conditions.