[package] name = "kas" version = "0.14.2" authors = ["Diggory Hardy "] edition = "2021" license = "Apache-2.0" description = "A pure-Rust GUI toolkit with stateful widgets" readme = "README.md" documentation = "https://docs.rs/kas/" keywords = ["gui"] categories = ["gui"] repository = "https://github.com/kas-gui/kas" exclude = ["/examples"] rust-version = "1.66.0" [package.metadata.docs.rs] features = ["nightly"] rustdoc-args = ["--cfg", "doc_cfg"] # To build locally: # RUSTDOCFLAGS="--cfg doc_cfg" cargo +nightly doc --features=nightly,internal_doc --all --no-deps --open [features] ######### meta / build features ######### # The minimal feature set needed to build basic applications (with assumptions # about target platforms). # # Note: only some examples build in this configuration; others need view, # markdown, resvg. Recommended also: clipboard, yaml (or some config format). minimal = ["wgpu", "winit", "wayland"] # All recommended features for optimal experience default = ["minimal", "view", "image", "resvg", "clipboard", "markdown", "shaping", "spawn"] # All standard test target features # NOTE: dynamic is excluded due to linker problems on Windows stable = ["default", "serde", "toml", "yaml", "json", "ron", "macros_log"] # Enables "recommended" unstable features nightly = ["min_spec"] # Enable dynamic linking (faster linking via an extra run-time dependency): dynamic = ["dep:kas-dylib"] # Use min_specialization (enables access key underlining for AccessLabel) min_spec = ["kas-widgets/min_spec"] # Use full specialization spec = ["min_spec", "kas-core/spec"] ######### optional dependencies / features ######### # Enable view widgets view = ["dep:kas-view"] #Enable WGPU backend: wgpu = ["dep:kas-wgpu"] # Enables documentation of APIs for graphics library and platform backends. # This API is not intended for use by end-user applications and # thus is omitted from built documentation by default. # This flag does not change the API, only built documentation. internal_doc = ["kas-core/internal_doc", "kas-wgpu?/internal_doc"] # Enables clipboard read/write clipboard = ["kas-core/clipboard"] # Enable Markdown parsing markdown = ["kas-core/markdown"] # Enable text shaping shaping = ["kas-core/shaping"] # Alternative: use Harfbuzz library for shaping harfbuzz = ["kas-core/harfbuzz"] # Enable serde support (mainly config read/write) serde = ["kas-core/serde"] # Enable support for YAML (de)serialisation yaml = ["serde", "kas-core/yaml"] # Enable support for JSON (de)serialisation json = ["serde", "kas-core/json"] # Enable support for RON (de)serialisation ron = ["serde", "kas-core/ron"] # Enable support for TOML (de)serialisation toml = ["serde", "kas-core/toml"] # Support image loading and decoding image = ["kas-widgets/image"] # Enable resvg module (Canvas + Svg widgets) resvg = ["dep:kas-resvg", "kas-resvg?/svg", "kas-dylib?/resvg"] # Enable resvg module (Canvas only) tiny-skia = ["dep:kas-resvg"] # Automatically detect usage of dark theme # # Not a default dependency; see https://github.com/emilk/egui/issues/2388 dark-light = ["kas-core/dark-light"] # Support spawning async tasks spawn = ["kas-core/spawn"] # Support SVG images # Inject logging into macro-generated code. # Requires that all crates using these macros depend on the log crate. macros_log = ["kas-core/macros_log"] winit = ["kas-core/winit"] # Support Wayland wayland = ["kas-core/wayland"] # Support X11 x11 = ["kas-core/x11"] # Optimise Node using unsafe code unsafe_node = ["kas-core/unsafe_node"] [dependencies] kas-core = { version = "0.14.1", path = "crates/kas-core" } kas-dylib = { version = "0.14.2", path = "crates/kas-dylib", optional = true } kas-widgets = { version = "0.14.2", path = "crates/kas-widgets" } kas-view = { version = "0.14.2", path = "crates/kas-view", optional = true } kas-resvg = { version = "0.14.2", path = "crates/kas-resvg", optional = true } [dependencies.kas-wgpu] version = "0.14.1" path = "crates/kas-wgpu" optional = true default-features = false features = ["raster"] [dev-dependencies] chrono = "0.4" env_logger = "0.10" log = "0.4" [workspace] members = [ "crates/kas-core", "crates/kas-dylib", "crates/kas-macros", "crates/kas-resvg", "crates/kas-wgpu", "crates/kas-widgets", "crates/kas-view", "examples/mandlebrot", ]