[package]
edition = "2024"
name = "rgpui"
version = "0.2.2"
build = "build.rs"
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "GUI UI framework"
readme = "README.md"
keywords = [
"desktop",
"gui",
"immediate",
]
categories = ["gui"]
license = "Apache-2.0"
repository = "https://github.com/launcher-rs/rgpui"
[features]
default = [
"font-kit",
"wayland",
"x11",
"windows-manifest",
]
input-latency-histogram = ["dep:hdrhistogram"]
inspector = ["rgpui-macros/inspector"]
leak-detection = []
reqwest = [
"dep:reqwest",
"dep:tokio",
]
screen-capture = ["scap"]
test-support = [
"leak-detection",
"wayland",
"x11",
"proptest",
"dep:git2",
]
tls = [
"dep:rustls",
"dep:rustls-platform-verifier",
]
wayland = ["bitflags"]
windows-manifest = ["dep:embed-resource"]
x11 = ["scap?/x11"]
[lib]
name = "rgpui"
path = "src/rgpui.rs"
doctest = false
[[example]]
name = "a11y"
path = "examples/a11y.rs"
[[example]]
name = "active_state_bug"
path = "examples/active_state_bug.rs"
[[example]]
name = "anchor"
path = "examples/anchor.rs"
[[example]]
name = "animation"
path = "examples/animation.rs"
[[example]]
name = "daemon_app"
path = "examples/daemon_app.rs"
[[example]]
name = "data_table"
path = "examples/data_table.rs"
[[example]]
name = "drag_drop"
path = "examples/drag_drop.rs"
[[example]]
name = "focus_visible"
path = "examples/focus_visible.rs"
[[example]]
name = "gif_viewer"
path = "examples/gif_viewer.rs"
[[example]]
name = "gradient"
path = "examples/gradient.rs"
[[example]]
name = "grid_layout"
path = "examples/grid_layout.rs"
[[example]]
name = "hello_world"
path = "examples/hello_world.rs"
[[example]]
name = "image"
path = "examples/image/image.rs"
required-features = ["reqwest"]
[[example]]
name = "image_gallery"
path = "examples/image_gallery.rs"
[[example]]
name = "image_loading"
path = "examples/image_loading.rs"
[[example]]
name = "input"
path = "examples/input.rs"
[[example]]
name = "layer_shell"
path = "examples/layer_shell.rs"
[[example]]
name = "list_example"
path = "examples/list_example.rs"
[[example]]
name = "mouse_pressure"
path = "examples/mouse_pressure.rs"
[[example]]
name = "move_entity_between_windows"
path = "examples/move_entity_between_windows.rs"
[[example]]
name = "on_window_close_quit"
path = "examples/on_window_close_quit.rs"
[[example]]
name = "opacity"
path = "examples/opacity.rs"
[[example]]
name = "ownership_post"
path = "examples/ownership_post.rs"
[[example]]
name = "painting"
path = "examples/painting.rs"
[[example]]
name = "paths_bench"
path = "examples/paths_bench.rs"
[[example]]
name = "pattern"
path = "examples/pattern.rs"
[[example]]
name = "popover"
path = "examples/popover.rs"
[[example]]
name = "scrollable"
path = "examples/scrollable.rs"
[[example]]
name = "set_menus"
path = "examples/set_menus.rs"
[[example]]
name = "shadow"
path = "examples/shadow.rs"
[[example]]
name = "svg"
path = "examples/svg/svg.rs"
[[example]]
name = "tab_stop"
path = "examples/tab_stop.rs"
[[example]]
name = "testing"
path = "examples/testing.rs"
[[example]]
name = "text"
path = "examples/text.rs"
[[example]]
name = "text_layout"
path = "examples/text_layout.rs"
[[example]]
name = "text_wrapper"
path = "examples/text_wrapper.rs"
[[example]]
name = "transparent"
path = "examples/transparent.rs"
[[example]]
name = "tray"
path = "examples/tray.rs"
[[example]]
name = "tray_simple"
path = "examples/tray_simple.rs"
[[example]]
name = "tree"
path = "examples/tree.rs"
[[example]]
name = "uniform_list"
path = "examples/uniform_list.rs"
[[example]]
name = "window"
path = "examples/window.rs"
[[example]]
name = "window_positioning"
path = "examples/window_positioning.rs"
[[example]]
name = "window_shadow"
path = "examples/window_shadow.rs"
[[test]]
name = "action_macros"
path = "tests/action_macros.rs"
[dependencies.accesskit]
version = "0.24.0"
[dependencies.anyhow]
version = "1.0.86"
[dependencies.async-channel]
version = "2.5.0"
[dependencies.async-compression]
version = "0.4"
features = [
"bzip2",
"gzip",
"futures-io",
]
[dependencies.async-fs]
version = "2.2"
[dependencies.async-std]
version = "1.13"
features = ["unstable"]
[dependencies.async-tar]
version = "0.6"
[dependencies.async-task]
version = "4.7"
[dependencies.async_zip]
version = "0.0.18"
features = [
"deflate",
"deflate64",
]
[dependencies.backtrace]
version = "0.3"
[dependencies.bitflags]
version = "2.11.1"
optional = true
[dependencies.bytes]
version = "1.11.1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.ctor]
version = "0.10.0"
[dependencies.derive_more]
version = "2.1.1"
features = [
"add",
"add_assign",
"deref",
"deref_mut",
"display",
"from_str",
"mul",
"mul_assign",
"not",
]
[dependencies.dirs]
version = "6.0"
[dependencies.dunce]
version = "1.0"
[dependencies.etagere]
version = "0.2"
[dependencies.flume]
version = "0.11"
[dependencies.futures]
version = "0.3.32"
[dependencies.futures-concurrency]
version = "7.7.1"
[dependencies.futures-lite]
version = "2.6"
[dependencies.git2]
version = "0.20.4"
features = ["vendored-libgit2"]
optional = true
default-features = false
[dependencies.globset]
version = "0.4"
[dependencies.hdrhistogram]
version = "7"
optional = true
[dependencies.heapless]
version = "0.9.2"
[dependencies.http]
version = "1.4"
[dependencies.http-body]
version = "1.0"
[dependencies.image]
version = "0.25.1"
[dependencies.indexmap]
version = "2.14.0"
features = ["serde"]
[dependencies.inventory]
version = "0.3.24"
[dependencies.itertools]
version = "0.14.0"
[dependencies.log]
version = "0.4"
features = [
"kv_unstable_serde",
"serde",
]
[dependencies.lyon]
version = "1.0"
[dependencies.num_cpus]
version = "1.13"
[dependencies.parking]
version = "2.0.0"
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.percent-encoding]
version = "2.3.2"
[dependencies.pin-project]
version = "1.1.10"
[dependencies.pollster]
version = "0.4.0"
[dependencies.postage]
version = "0.5"
features = ["futures-traits"]
[dependencies.profiling]
version = "1"
[dependencies.proptest]
version = "1.11.0"
features = ["attr-macro"]
optional = true
[dependencies.rand]
version = "0.10"
[dependencies.raw-window-handle]
version = "0.6"
[dependencies.rayon]
version = "1.12"
[dependencies.regex]
version = "1.12"
[dependencies.reqwest]
version = "0.13"
features = [
"json",
"charset",
"http2",
"multipart",
"socks",
"stream",
]
optional = true
[dependencies.resvg]
version = "0.45.0"
features = [
"text",
"system-fonts",
"memmap-fonts",
"raster-images",
]
default-features = false
[dependencies.rgpui-macros]
version = "0.2.1"
[dependencies.rust-embed]
version = "8.11"
features = ["include-exclude"]
[dependencies.rustc-hash]
version = "2.1.0"
[dependencies.rustls]
version = "0.23.26"
optional = true
[dependencies.rustls-platform-verifier]
version = "0.7.0"
optional = true
[dependencies.schemars]
version = "1.2.1"
features = ["indexmap2"]
[dependencies.seahash]
version = "4.1"
[dependencies.serde]
version = "1.0.221"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1.0.144"
features = [
"preserve_order",
"raw_value",
]
[dependencies.serde_json_lenient]
version = "0.2"
features = [
"preserve_order",
"raw_value",
]
[dependencies.serde_urlencoded]
version = "0.7"
[dependencies.sha2]
version = "0.11"
[dependencies.shlex]
version = "1.3.0"
[dependencies.slotmap]
version = "1.1.1"
[dependencies.smallvec]
version = "1.6"
features = [
"union",
"const_new",
]
[dependencies.smol]
version = "2.0"
[dependencies.smol_str]
version = "0.3.6"
[dependencies.spin]
version = "0.10.0"
[dependencies.stacksafe]
version = "1.0.1"
[dependencies.strum]
version = "0.28"
features = ["derive"]
[dependencies.taffy]
version = "=0.10.1"
[dependencies.take-until]
version = "0.2.0"
[dependencies.tempfile]
version = "3.27.0"
[dependencies.thiserror]
version = "2.0.12"
[dependencies.tokio]
version = "1"
features = [
"rt",
"rt-multi-thread",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.ttf-parser]
version = "0.25"
[dependencies.unicase]
version = "2.9"
[dependencies.url]
version = "2.5.8"
[dependencies.usvg]
version = "0.45.0"
default-features = false
[dependencies.uuid]
version = "1.23.1"
features = [
"v4",
"v5",
"v7",
"serde",
]
[dependencies.waker-fn]
version = "1.2.0"
[dependencies.walkdir]
version = "2.5"
[dependencies.web-time]
version = "1.1.0"
[dependencies.which]
version = "8.0.2"
[dev-dependencies.backtrace]
version = "0.3"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.lyon]
version = "1.0"
features = ["extra"]
[dev-dependencies.pretty_assertions]
version = "1.4.1"
features = ["unstable"]
[dev-dependencies.proptest]
version = "1.11.0"
features = ["attr-macro"]
[dev-dependencies.rand]
version = "0.10"
[dev-dependencies.rgpui-platform]
version = "0.2.0"
features = [
"font-kit",
"wayland",
"x11",
]
default-features = false
[dev-dependencies.unicode-segmentation]
version = "1.13"
[build-dependencies.embed-resource]
version = "3.0"
optional = true
[target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "macos"))'.dependencies.pathfinder_geometry]
version = "0.5"
[target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "windows"))'.dependencies.scap]
version = "0.0.8-zed"
optional = true
default-features = false
package = "zed-scap"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
[target.'cfg(target_family = "wasm")'.dependencies.getrandom]
version = "0.3.4"
features = ["wasm_js"]
[target.'cfg(target_family = "wasm")'.dependencies.uuid]
version = "1.23.1"
features = [
"v4",
"v5",
"v7",
"serde",
"js",
]
[target.'cfg(target_family = "wasm")'.dev-dependencies.rgpui-web]
version = "0.2.0"
[target.'cfg(target_family = "wasm")'.dev-dependencies.wasm-bindgen]
version = "0.2.120"
[target.'cfg(target_os = "macos")'.dependencies.block]
version = "0.1"
[target.'cfg(target_os = "macos")'.dependencies.cocoa]
version = "=0.26.0"
[target.'cfg(target_os = "macos")'.dependencies.cocoa-foundation]
version = "=0.2.0"
[target.'cfg(target_os = "macos")'.dependencies.core-foundation]
version = "=0.10.0"
[target.'cfg(target_os = "macos")'.dependencies.core-foundation-sys]
version = "0.8.6"
[target.'cfg(target_os = "macos")'.dependencies.core-graphics]
version = "0.24"
[target.'cfg(target_os = "macos")'.dependencies.core-text]
version = "21"
[target.'cfg(target_os = "macos")'.dependencies.core-video]
version = "0.5.2"
features = ["metal"]
[target.'cfg(target_os = "macos")'.dependencies.font-kit]
version = "0.14.1-zed"
optional = true
package = "zed-font-kit"
[target.'cfg(target_os = "macos")'.dependencies.foreign-types]
version = "0.5"
[target.'cfg(target_os = "macos")'.dependencies.log]
version = "0.4"
features = [
"kv_unstable_serde",
"serde",
]
[target.'cfg(target_os = "macos")'.dependencies.mach2]
version = "0.6"
[target.'cfg(target_os = "macos")'.dependencies.metal]
version = "0.33"
[target.'cfg(target_os = "macos")'.dependencies.objc]
version = "0.2"
[target.'cfg(target_os = "macos")'.dependencies.objc2]
version = "0.6"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.objc2-metal]
version = "0.3"
optional = true
[target.'cfg(target_os = "macos")'.build-dependencies.bindgen]
version = "0.71"
[target.'cfg(target_os = "macos")'.build-dependencies.cbindgen]
version = "0.28.0"
default-features = false
[target.'cfg(target_os = "windows")'.dependencies.tendril]
version = "0.4.3"
[target.'cfg(target_os = "windows")'.dependencies.windows]
version = "0.62"
features = [
"Foundation_Numerics",
"Globalization_DateTimeFormatting",
"Storage_Search",
"Storage_Streams",
"System_Threading",
"UI_ViewManagement",
"Wdk_System_SystemServices",
"Win32_Foundation",
"Win32_Globalization",
"Win32_Graphics_Direct3D",
"Win32_Graphics_Direct3D11",
"Win32_Graphics_Direct3D_Fxc",
"Win32_Graphics_DirectComposition",
"Win32_Graphics_DirectWrite",
"Win32_Graphics_DirectManipulation",
"Win32_Graphics_Dwm",
"Win32_Graphics_Dxgi",
"Win32_Graphics_Dxgi_Common",
"Win32_Graphics_Gdi",
"Win32_Graphics_Imaging",
"Win32_Graphics_Hlsl",
"Win32_Networking_WinSock",
"Win32_Security",
"Win32_Security_Credentials",
"Win32_Security_Cryptography",
"Win32_Storage_FileSystem",
"Win32_System_Com",
"Win32_System_Com_StructuredStorage",
"Win32_System_Console",
"Win32_System_Diagnostics_Debug",
"Win32_System_DataExchange",
"Win32_System_IO",
"Win32_System_LibraryLoader",
"Win32_System_Memory",
"Win32_System_Ole",
"Win32_System_Performance",
"Win32_System_Pipes",
"Win32_System_RestartManager",
"Win32_System_SystemInformation",
"Win32_System_SystemServices",
"Win32_System_Threading",
"Win32_System_Variant",
"Win32_System_WinRT",
"Win32_UI_Controls",
"Win32_UI_HiDpi",
"Win32_UI_Input_Ime",
"Win32_UI_Input_KeyboardAndMouse",
"Win32_UI_Input_Pointer",
"Win32_UI_Shell",
"Win32_UI_Shell_Common",
"Win32_UI_Shell_PropertiesSystem",
"Win32_UI_WindowsAndMessaging",
"Win32_Media",
"Win32_Foundation",
"Win32_System_Threading",
"Win32_Security",
]
[target."cfg(unix)".dependencies.command-fds]
version = "0.3.1"
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[target."cfg(unix)".dependencies.nix]
version = "0.31"
features = ["user"]
[lints.clippy]
dbg_macro = "deny"
declare_interior_mutable_const = "deny"
disallowed_methods = "deny"
large_enum_variant = "allow"
let_underscore_future = "allow"
nonminimal_bool = "allow"
redundant_clone = "deny"
single_range_in_vec_init = "allow"
todo = "deny"
too_many_arguments = "allow"
type_complexity = "allow"
[lints.clippy.style]
level = "allow"
priority = -1
[lints.rust.unexpected_cfgs]
level = "allow"
priority = 0