#shell #ui #native #elements #toolkit


Platform abstracting application shell used for druid toolkit

4 releases

✓ Uses Rust 2018 edition

0.4.0 Dec 28, 2019
0.3.2 Nov 11, 2019
0.3.1 Nov 5, 2019
0.3.0 Nov 2, 2019

#35 in macOS APIs

Download history 100/week @ 2019-11-01 85/week @ 2019-11-08 46/week @ 2019-11-15 108/week @ 2019-11-22 78/week @ 2019-11-29 78/week @ 2019-12-06 89/week @ 2019-12-13 40/week @ 2019-12-20 68/week @ 2019-12-27 53/week @ 2020-01-03 70/week @ 2020-01-10 66/week @ 2020-01-17 45/week @ 2020-01-24 63/week @ 2020-01-31 58/week @ 2020-02-07

216 downloads per month
Used in 4 crates (via druid)


5.5K SLoC


druid-shell is an attempt to provide a common interface to the various elements of different platform application frameworks. It is designed to be used by druid, a UI toolkit.


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-platform directories in src/platform. The platform-specific code for the current platform is reexported as druid-shell::platform.

druid-shell does not generally expose platform types directly. Instead, we expose wrapper structs that define the common interface, and then call corresponding methods on the concrete type for the current platform.


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.


~97K SLoC