# Kazari - A no_std GUI software stack (Work-in-Progress)
:construction: Kazari is still in the very early stage of development. :construction:
Kazari is a no_std GUI software stack which provides a graphic desktop environment based on [Wayland Protocol](https://wayland.freedesktop.org/). It's orignally designed for [Resea](https://github.com/nuta/resea), a microkernel-based minimalistic operating system written from scratch. However, Kazari is platform-agnostic and it should be easy to port to your operating system. Features -------- - It consists of the server (so-called *compositor*) and clients (applications) connected over [Wayland Protocol](https://wayland.freedesktop.org/docs/html/apa.html), a well-known display protocol as a promising alternative to X Window System. - Compositing window manager library (window, mouse cursor, ...). - A 2D graphics library to render window contents in the client side (drawing lines, rectangles, texts, images, ...). - Implemented in no_std (but depends on liballoc). - The HTML5 Canvas API backend for debugging. Backends -------- - Web: `web/src/lib.rs` - UEFI Application: `demo/uefi/` (**incomplete**) - Resea: **ToDo** How to try ---------- Using the Web-based backend is the best way for Kazari development. 1. Install [`wasm-pack`](https://rustwasm.github.io/docs/wasm-pack/quickstart.html).. 2. Start the local web server. It automatically rebuilds and reloads the web page when you updated a source file. ``` $ cd web $ yarn dev ``` ---- Running wayland-scanner ----------------------- Since the original `wayland-scanner` does not support generating Rust code, we have our own code generator not to write message definitions by hand. ``` ./wayland-scanner.py src/wl/protocols protocols/*.xml ``` References ---------- - [Introduction - The Wayland Protocol](https://wayland-book.com/introduction.html) - [Wayland Protocol Specification](https://wayland.freedesktop.org/docs/html/apa.html) License ------- [CC0](https://creativecommons.org/publicdomain/zero/1.0/) or [MIT](https://opensource.org/licenses/MIT). Choose whichever you prefer.