winit 0.30.0

Cross-platform window creation library.
Documentation
[package]
name = "winit"
version = "0.30.0"
authors = [
    "The winit contributors",
    "Pierre Krieger <pierre.krieger1708@gmail.com>",
]
description = "Cross-platform window creation library."
keywords = ["windowing"]
readme = "README.md"
documentation = "https://docs.rs/winit"
categories = ["gui"]
rust-version.workspace = true
repository.workspace = true
license.workspace = true
edition.workspace = true
exclude = ["/.cargo"]

[package.metadata.docs.rs]
features = [
    "rwh_04",
    "rwh_05",
    "rwh_06",
    "serde",
    "mint",
    # Enabled to get docs to compile
    "android-native-activity",
]
# These are all tested in CI
targets = [
    # Windows
    "i686-pc-windows-msvc",
    "x86_64-pc-windows-msvc",
    # macOS
    "x86_64-apple-darwin",
    # Unix (X11 & Wayland)
    "i686-unknown-linux-gnu",
    "x86_64-unknown-linux-gnu",
    # iOS
    "x86_64-apple-ios",
    # Android
    "aarch64-linux-android",
    # Web
    "wasm32-unknown-unknown",
]
rustdoc-args = ["--cfg", "docsrs"]

# Features are documented in either `lib.rs` or under `winit::platform`.
[features]
default = ["rwh_06", "x11", "wayland", "wayland-dlopen", "wayland-csd-adwaita"]
x11 = ["x11-dl", "bytemuck", "percent-encoding", "xkbcommon-dl/x11", "x11rb"]
wayland = [
    "wayland-client",
    "wayland-backend",
    "wayland-protocols",
    "wayland-protocols-plasma",
    "sctk",
    "ahash",
    "memmap2",
]
wayland-dlopen = ["wayland-backend/dlopen"]
wayland-csd-adwaita = ["sctk-adwaita", "sctk-adwaita/ab_glyph"]
wayland-csd-adwaita-crossfont = ["sctk-adwaita", "sctk-adwaita/crossfont"]
wayland-csd-adwaita-notitle = ["sctk-adwaita"]
android-native-activity = ["android-activity/native-activity"]
android-game-activity = ["android-activity/game-activity"]
serde = ["dep:serde", "cursor-icon/serde", "smol_str/serde", "dpi/serde"]
mint = ["dpi/mint"]
rwh_04 = ["dep:rwh_04", "ndk/rwh_04"]
rwh_05 = ["dep:rwh_05", "ndk/rwh_05"]
rwh_06 = ["dep:rwh_06", "ndk/rwh_06"]

[build-dependencies]
cfg_aliases = "0.2.0"

[dependencies]
bitflags = "2"
cursor-icon = "1.1.0"
dpi = { version = "0.1.1", path = "dpi" }
rwh_04 = { package = "raw-window-handle", version = "0.4", optional = true }
rwh_05 = { package = "raw-window-handle", version = "0.5.2", features = [
    "std",
], optional = true }
rwh_06 = { package = "raw-window-handle", version = "0.6", features = [
    "std",
], optional = true }
serde = { workspace = true, optional = true }
smol_str = "0.2.0"
tracing = { version = "0.1.40", default_features = false }

[dev-dependencies]
image = { version = "0.25.0", default-features = false, features = ["png"] }
tracing = { version = "0.1.40", default_features = false, features = ["log"] }
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
winit = { path = ".", features = ["rwh_05"] }

[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dev-dependencies]
softbuffer = { version = "0.4.0", default-features = false, features = [
    "x11",
    "x11-dlopen",
    "wayland",
    "wayland-dlopen",
] }

[target.'cfg(target_os = "android")'.dependencies]
android-activity = "0.6.0"
ndk = { version = "0.9.0", default-features = false }

[target.'cfg(any(target_os = "ios", target_os = "macos"))'.dependencies]
core-foundation = "0.9.3"
objc2 = "0.5.1"

[target.'cfg(target_os = "macos")'.dependencies]
core-graphics = "0.23.1"

[target.'cfg(target_os = "macos")'.dependencies.objc2-foundation]
version = "0.2.0"
features = [
    "dispatch",
    "NSArray",
    "NSAttributedString",
    "NSData",
    "NSDictionary",
    "NSEnumerator",
    "NSObjCRuntime",
    "NSString",
    "NSPathUtilities",
    "NSProcessInfo",
    "NSThread",
    "NSValue",
]

[target.'cfg(target_os = "macos")'.dependencies.objc2-app-kit]
version = "0.2.0"
features = [
    "NSAppearance",
    "NSApplication",
    "NSBitmapImageRep",
    "NSButton",
    "NSControl",
    "NSCursor",
    "NSDragging",
    "NSEvent",
    "NSGraphics",
    "NSGraphicsContext",
    "NSImage",
    "NSImageRep",
    "NSMenu",
    "NSMenuItem",
    "NSOpenGLView",
    "NSPasteboard",
    "NSResponder",
    "NSRunningApplication",
    "NSScreen",
    "NSTextInputClient",
    "NSTextInputContext",
    "NSView",
    "NSWindow",
    "NSWindowScripting",
    "NSWindowTabGroup",
]

[target.'cfg(target_os = "ios")'.dependencies.objc2-foundation]
version = "0.2.0"
features = [
    "dispatch",
    "NSArray",
    "NSEnumerator",
    "NSGeometry",
    "NSObjCRuntime",
    "NSString",
    "NSProcessInfo",
    "NSThread",
    "NSSet",
]

[target.'cfg(target_os = "windows")'.dependencies]
unicode-segmentation = "1.7.1"

[target.'cfg(target_os = "windows")'.dependencies.windows-sys]
version = "0.52.0"
features = [
    "Win32_Devices_HumanInterfaceDevice",
    "Win32_Foundation",
    "Win32_Globalization",
    "Win32_Graphics_Dwm",
    "Win32_Graphics_Gdi",
    "Win32_Media",
    "Win32_System_Com_StructuredStorage",
    "Win32_System_Com",
    "Win32_System_LibraryLoader",
    "Win32_System_Ole",
    "Win32_System_SystemInformation",
    "Win32_System_SystemServices",
    "Win32_System_Threading",
    "Win32_System_WindowsProgramming",
    "Win32_UI_Accessibility",
    "Win32_UI_Controls",
    "Win32_UI_HiDpi",
    "Win32_UI_Input_Ime",
    "Win32_UI_Input_KeyboardAndMouse",
    "Win32_UI_Input_Pointer",
    "Win32_UI_Input_Touch",
    "Win32_UI_Shell",
    "Win32_UI_TextServices",
    "Win32_UI_WindowsAndMessaging",
]

[target.'cfg(all(unix, not(any(target_os = "redox", target_family = "wasm", target_os = "android", target_os = "ios", target_os = "macos"))))'.dependencies]
ahash = { version = "0.8.7", features = ["no-rng"], optional = true }
bytemuck = { version = "1.13.1", default-features = false, optional = true }
calloop = "0.12.3"
libc = "0.2.64"
memmap2 = { version = "0.9.0", optional = true }
percent-encoding = { version = "2.0", optional = true }
rustix = { version = "0.38.4", default-features = false, features = [
    "std",
    "system",
    "thread",
    "process",
] }
sctk = { package = "smithay-client-toolkit", version = "0.18.0", default-features = false, features = [
    "calloop",
], optional = true }
sctk-adwaita = { version = "0.9.0", default_features = false, optional = true }
wayland-backend = { version = "0.3.0", default_features = false, features = [
    "client_system",
], optional = true }
wayland-client = { version = "0.31.1", optional = true }
wayland-protocols = { version = "0.31.0", features = [
    "staging",
], optional = true }
wayland-protocols-plasma = { version = "0.2.0", features = [
    "client",
], optional = true }
x11-dl = { version = "2.19.1", optional = true }
x11rb = { version = "0.13.0", default-features = false, features = [
    "allow-unsafe-code",
    "dl-libxcb",
    "randr",
    "resource_manager",
    "xinput",
    "xkb",
], optional = true }
xkbcommon-dl = "0.4.2"

[target.'cfg(target_os = "redox")'.dependencies]
orbclient = { version = "0.3.47", default-features = false }
redox_syscall = "0.4.1"

[target.'cfg(target_family = "wasm")'.dependencies.web_sys]
package = "web-sys"
version = "0.3.64"
features = [
    'AbortController',
    'AbortSignal',
    'Blob',
    'console',
    'CssStyleDeclaration',
    'Document',
    'DomException',
    'DomRect',
    'DomRectReadOnly',
    'Element',
    'Event',
    'EventTarget',
    'FocusEvent',
    'HtmlCanvasElement',
    'HtmlElement',
    'HtmlImageElement',
    'ImageBitmap',
    'ImageBitmapOptions',
    'ImageBitmapRenderingContext',
    'ImageData',
    'IntersectionObserver',
    'IntersectionObserverEntry',
    'KeyboardEvent',
    'MediaQueryList',
    'MessageChannel',
    'MessagePort',
    'Node',
    'PageTransitionEvent',
    'PointerEvent',
    'PremultiplyAlpha',
    'ResizeObserver',
    'ResizeObserverBoxOptions',
    'ResizeObserverEntry',
    'ResizeObserverOptions',
    'ResizeObserverSize',
    'VisibilityState',
    'Window',
    'WheelEvent',
    'Url',
]

[target.'cfg(target_family = "wasm")'.dependencies]
js-sys = "0.3.64"
pin-project = "1"
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
web-time = "1"

[target.'cfg(all(target_family = "wasm", target_feature = "atomics"))'.dependencies]
atomic-waker = "1"
concurrent-queue = { version = "2", default-features = false }

[target.'cfg(target_family = "wasm")'.dev-dependencies]
console_error_panic_hook = "0.1"
tracing-web = "0.1"

[[example]]
doc-scrape-examples = true
name = "window"

[workspace]
resolver = "2"
members = ["dpi"]

[workspace.package]
rust-version = "1.70.0"
repository = "https://github.com/rust-windowing/winit"
license = "Apache-2.0"
edition = "2021"

[workspace.dependencies]
serde = { version = "1", features = ["serde_derive"] }
mint = "0.5.6"