Home

Awesome

KAS 7GUIs

7GUIs is a GUI programming benchmark. This repository implements the benchmark's tasks via the KAS GUI.

Installation and dependencies

Currently, KAS's only drawing method is WebGPU, which requires DirectX 11/12, Vulkan or Metal. In the future, there may be support for OpenGL and software rendering.

If you haven't already, install Rust, including the nightly channel (rustup toolchain install nightly). Either make nightly the default (rustup default nightly) or use cargo +nightly ... below.

A few other dependencies may require installation, depending on the system. On Ubuntu:

sudo apt-get install build-essential git python3 cmake libxcb-shape0-dev libxcb-xfixes0-dev

Next, clone the repository:

git clone https://github.com/kas-gui/7guis
cd 7guis
cargo run

Tasks

A brief list of the implemented tasks:

Counter

A very simple push-button application.

Counter

Temperature Converter

An application to convert between Celsius and Fahrenheit temperatures.

Temperature converter

Flight booker

An application to gather date inputs, with real-time validation of input fields.

Flight booker

Timer

A timer with animations and slightly-complex event handling.

Timer

CRUD

A simple front-end to a shared data-set supporting Create, Read, Update and Delete operations as well as filtering.

CRUD

Circle drawer

An app for drawing circles with unified undo handling.

Not implemented yet. At the time of writing, KAS lacks context menus and universal "undo" support (the drawing API is also a bit primitive, though still sufficient for this example).

Cells

A simple spreadsheet application.

Partially implemented:

Cells

Copyright and Licence

This collection of examples is distributed under the "New BSD License". See the COPYRIGHT file for details.