25 releases (14 breaking)
0.14.2 | Dec 12, 2023 |
---|---|
0.14.0-alpha | Sep 8, 2023 |
0.13.0 | Feb 28, 2023 |
0.12.1 | Dec 22, 2022 |
0.0.2 | Jan 24, 2019 |
#303 in GUI
151 downloads per month
Used in kas-gtk
1.5MB
24K
SLoC
KAS GUI
KAS is a stateful, pure-Rust GUI toolkit supporting:
- Mostly declarative UI descriptions despite stateful widgets
- Custom widgets using state for caches and input state (e.g. selection range)
- Virtual scrolling (list or matrix), including support for external data sources
- Theme abstraction including theme-driven animations and sizing
- Multiple renderer backends
- Integrated i18n support
- Accessibility tool integration
- Platform integration: persistent configuration, theme discovery, external menus, IME
- Most of the basics you'd expect: complex text, fractional scaling, automatic margins
- Extremely fast, monolithic binaries
More
- Wiki: Getting started, Configuration, Troubleshooting
- API docs
- Docs: Tutorials, Blog, Design
- Examples:
examples
dir, kas-gui/7guis.
Crates and features
kas is a meta-package serving as the library's public API, yet containing no real code. Other crates in this repo:
- kas-core: the core library
- kas-widgets: the main widget library
- kas-view: view widgets supporting virtual scrolling
- kas-resvg: extra widgets over resvg
- kas-dylib: helper crate to support dynamic linking
- kas-macros: proc-macro crate
Significant external dependencies:
- kas-text: complex text support
- impl-tools:
autoimpl
andimpl_scope
(extensible) macros - winit: platform window integration
- wgpu: modern accelerated graphics API
Feature flags
The kas
crate enables most important features by default, excepting those
requiring nightly rustc
. Other crates enable fewer features by default.
See Cargo.toml.
Copyright and Licence
The COPYRIGHT file includes a list of contributors who claim copyright on this project. This list may be incomplete; new contributors may optionally add themselves to this list.
The KAS library is published under the terms of the Apache License, Version 2.0. You may obtain a copy of this licence from the LICENSE file or on the following webpage: https://www.apache.org/licenses/LICENSE-2.0
Dependencies
~3–44MB
~735K SLoC