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

#735 in GUI

Download history 822/week @ 2024-02-15 726/week @ 2024-02-22 719/week @ 2024-02-29 828/week @ 2024-03-07 792/week @ 2024-03-14 1025/week @ 2024-03-21 1009/week @ 2024-03-28 917/week @ 2024-04-04 918/week @ 2024-04-11 813/week @ 2024-04-18 1038/week @ 2024-04-25 831/week @ 2024-05-02 865/week @ 2024-05-09 860/week @ 2024-05-16 791/week @ 2024-05-23 656/week @ 2024-05-30

3,308 downloads per month
Used in 35 crates (5 directly)

Apache-2.0

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
~331K SLoC