#native #iced #druid

iced_native

A renderer-agnostic library for native GUIs

7 releases (4 breaking)

0.4.0 Mar 31, 2021
0.3.0 Nov 26, 2020
0.2.2 Apr 26, 2020
0.1.0 Nov 25, 2019
0.0.0 Sep 20, 2019
Download history 1229/week @ 2021-01-21 1165/week @ 2021-01-28 1268/week @ 2021-02-04 1142/week @ 2021-02-11 1340/week @ 2021-02-18 1264/week @ 2021-02-25 1060/week @ 2021-03-04 1744/week @ 2021-03-11 997/week @ 2021-03-18 2212/week @ 2021-03-25 1441/week @ 2021-04-01 1427/week @ 2021-04-08 1292/week @ 2021-04-15 1187/week @ 2021-04-22 1165/week @ 2021-04-29 1103/week @ 2021-05-06

5,823 downloads per month
Used in 32 crates (19 directly)

MIT license

380KB
10K SLoC

iced_native

Documentation Crates.io License project chat

iced_native takes iced_core and builds a native runtime on top of it, featuring:

  • A custom layout engine, greatly inspired by druid
  • Event handling for all the built-in widgets
  • A renderer-agnostic API

To achieve this, it introduces a bunch of reusable interfaces:

  • A Widget trait, which is used to implement new widgets: from layout requirements to event and drawing logic.
  • A bunch of Renderer traits, meant to keep the crate renderer-agnostic.
  • A Windowed trait, leveraging raw-window-handle, which can be implemented by graphical renderers that target windows. Window-based shells (like iced_winit) can use this trait to stay renderer-agnostic.

The native target

Installation

Add iced_native as a dependency in your Cargo.toml:

iced_native = "0.4"

Iced moves fast and the master branch can contain breaking changes! If you want to learn about a specific release, check out the release list.

Dependencies

~1.5–3MB
~53K SLoC