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 cala which depends on this crate.
Check out the documentation for examples.
- Linux Wayland Support
- Linux OpenGLES Support
- XCB
- Windows WinAPI
- Android
- MacOS Cocoa
- Redox
- Nintendo Switch
- XBOX
- PlayStation
- Wasm
- OpenGL
- WebGL
- Vulkan
Human targets all platforms that can run Rust, including:
- Linux
- Web Assembly doesn't work yet
- Windows doesn't work yet
- Mac OS doesn't work yet
- BSD doesn't work yet
- Android (may partially or fully work, but untested) doesn't work yet
- iOS / various game consoles doesn't work yet
- Redox doesn't work yet
- Fuchsia doesn't work yet
- Others? (make a PR)
Licensed under any of
- Apache License, Version 2.0, (LICENSE_APACHE_2_0.txt or https://www.apache.org/licenses/LICENSE-2.0)
- MIT License, (LICENSE_MIT.txt or https://mit-license.org/)
- Boost Software License, Version 1.0, (LICENSE_BOOST_1_0.txt or https://www.boost.org/LICENSE_1_0.txt)
at your option.
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 licensed as described above, without any additional terms or conditions.
If you want help using or contributing to this library, feel free to send me an email at [email protected].