9 releases (5 breaking)
0.8.3 | Feb 28, 2023 |
---|---|
0.8.0 | Jan 27, 2023 |
0.7.0 | Jan 2, 2021 |
0.6.0 | Jun 1, 2020 |
0.3.2 | Nov 11, 2019 |
#866 in GUI
2,992 downloads per month
Used in 35 crates
(5 directly)
1MB
21K
SLoC
druid-shell
druid-shell
provides a common interface to the various elements of different platform application
frameworks. It is designed to be used by Druid, a UI toolkit.
Project status
druid-shell
v0.8 was forked to form Glazier, which is where all new development happens.
No further development is expected on druid-shell
. We recommend everyone migrates to Glazier.
Design
The code in druid-shell
can be divided into roughly two categories: the
platform agnostic code and types, which are exposed directly, and the
platform-specific implementations of these types, which live in per-backend
directories in src/backend
. The backend-specific code for the current
backend is re-exported as druid-shell::backend
.
druid-shell
does not generally expose backend types directly. Instead, we
expose wrapper structs that define the common interface, and then call
corresponding methods on the concrete type for the current backend.
Unsafe
Interacting with system APIs is inherently unsafe. One of the goals of
druid-shell
is to handle all interaction with these APIs, exposing
a safe interface to druid
and other possible consumers.
Dependencies
~2–23MB
~318K SLoC