repowiseiced-rs/iced

Architecture of iced-rs/iced

iced-rs/iced is 497 source files holding 11,102 symbols across 22 modules, written mainly in Rust, Python. The largest module is examples, with 164 files, and 71 files are entry points into the dependency graph.

How iced fits together

An application passes its update and view functions to iced::run, which starts the program. The windowing layer, shown by the hotspot file winit/src/lib.rs, receives system events and turns them into messages for the update logic. The core module, whose entry point is core/src/lib.rs, includes layout code such as core/src/layout/flex.rs and core/src/length.rs, which arranges the widgets returned by the view logic. Built-in widgets live in the widget module, for example widget/src/scrollable.rs and widget/src/transition.rs. The wgpu module provides the renderer that draws the laid-out widgets to the window.

Largest modules

  • examples: 164 files and 14,796 lines of code
  • core: 85 files and 9,441 lines of code
  • widget: 66 files and 22,645 lines of code
  • graphics: 29 files and 3,341 lines of code
  • wgpu: 27 files and 6,713 lines of code
  • futures: 19 files and 807 lines of code
  • runtime: 15 files and 1,412 lines of code
  • .github: 11 files and 349 lines of code

Languages

By file count: Rust 364 files, Python 1 file.

More on iced: summary and FAQ, codebase overview, code health.

Related guide: Best dependency graph tools for monorepos