44 releases (26 breaking)

Uses new Rust 2024

0.34.1 Mar 27, 2026
0.33.3 Dec 11, 2025
0.33.2 Nov 13, 2025
0.32.0 Jul 10, 2025
0.10.0 Feb 28, 2021

#1874 in GUI

Download history 109997/week @ 2025-12-29 205159/week @ 2026-01-05 220822/week @ 2026-01-12 343418/week @ 2026-01-19 328808/week @ 2026-01-26 268335/week @ 2026-02-02 226444/week @ 2026-02-09 221627/week @ 2026-02-16 231934/week @ 2026-02-23 228666/week @ 2026-03-02 247294/week @ 2026-03-09 238759/week @ 2026-03-16 272189/week @ 2026-03-23 271947/week @ 2026-03-30 317511/week @ 2026-04-06 339913/week @ 2026-04-13

1,219,153 downloads per month
Used in 1,561 crates (34 directly)

MIT/Apache

1MB
15K SLoC

A simple 2D graphics library for turning simple 2D shapes and text into textured triangles.

Made for egui.

Create some Shape:s and pass them to Tessellator::tessellate_shapes to generate Mesh:es that you can then paint using some graphics API of your choice (e.g. OpenGL).

Coordinate system

The left-top corner of the screen is (0.0, 0.0), with X increasing to the right and Y increasing downwards.

epaint uses logical points as its coordinate system. Those related to physical pixels by the pixels_per_point scale factor. For example, a high-dpi screen can have pixels_per_point = 2.0, meaning there are two physical screen pixels for each logical point.

Angles are in radians, and are measured clockwise from the X-axis, which has angle=0.

Feature flags

document_features::document_features!())]


epaint - egui paint library

Latest version Documentation unsafe forbidden MIT Apache

A bare-bones 2D graphics library for turning simple 2D shapes and text into textured triangles.

Made for egui.

Dependencies

~14MB
~284K SLoC