1 unstable release

0.0.1 Mar 10, 2021

#20 in #compositor

CC0-1.0 OR MIT

1MB
15K SLoC

Kazari - A no_std GUI software stack (Work-in-Progress)

🚧 Kazari is still in the very early stage of development. 🚧

Kazari is a no_std GUI software stack which provides a graphic desktop environment based on Wayland Protocol.

It's orignally designed for 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, 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..

  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

License

CC0 or MIT. Choose whichever you prefer.

Dependencies

~4.5MB
~52K SLoC