rust-windowing/winit

Window handling library in pure Rust

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 56 minutes ago
Added to GitGenius on September 10th, 2026
Created on February 23rd, 2016
Open Issues & Pull Requests: 659 (+0)
GitHub issues: Enabled
Number of forks: 1,337
Total Stargazers: 6,153 (+0)
Total Subscribers: 63 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 5.4 hours
Mean response time: 53.0 days
90th percentile: 75.4 days
Tracked items: 393

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 88% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 62% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 3% of issues opened in the past year have been closed. Three people close 77% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 240
New in 7 days: 1
Closed in 7 days: 3
Avg open age: 738 days
Stale 30+ days: 220
Stale 90+ days: 180

Recent activity

Opened in 7 days: 1
Closed in 7 days: 3
Comments in 7 days: 3
Events in 7 days: 18

Top labels

  • B - bug (213)
  • DS - appkit (86)
  • DS - win32 (82)
  • S - enhancement (80)
  • DS - wayland (59)
  • S - api (56)
  • DS - x11 (48)
  • C - needs discussion (35)

Detailed Description

winit is a cross-platform window creation and management library written in pure Rust.

The library solves the problem of handling windows and their events across different operating systems by providing a unified API. It creates windows and processes events such as resizing, keyboard input, and mouse movement. The tool is intentionally designed as a low-level foundation in a library hierarchy, meaning it handles window creation and event management but does not render graphics itself; users must employ platform-specific getters provided by winit or integrate another graphics library to display content.

Developers should choose winit if they need direct control over window lifecycle and event handling in a cross-platform Rust application. It suits projects that require custom rendering pipelines or that will layer higher-level GUI frameworks on top of basic windowing. The library supports multiple platforms including Windows, macOS, Linux with both X11 and Wayland, iOS, Android, and WebAssembly. For projects seeking complete GUI solutions with built-in widgets or rendering, the README directs developers to consult Are we GUI yet and Are we game yet depending on project type, indicating that winit is intentionally scoped narrowly to windowing concerns.

The project maintains regular structured communication through weekly maintainer meetings with published notes. The codebase follows a defined Minimum Supported Rust Version policy with a formula-based upper bound tied to Debian Sid and stable Rust versions, though Android support requires exceptions to this policy. Platform-specific implementation details are documented in the platform module, and the DPI package within the repository operates under a different license than the main crate.