[package] name = "kas-core" version = "0.14.1" authors = ["Diggory Hardy "] edition = "2021" license = "Apache-2.0" description = "KAS GUI / core" readme = "README.md" documentation = "https://docs.rs/kas-core/" keywords = ["gui"] categories = ["gui"] repository = "https://github.com/kas-gui/kas" exclude = ["/screenshots"] [package.metadata.docs.rs] features = ["stable"] rustdoc-args = ["--cfg", "doc_cfg"] # To build locally: # RUSTDOCFLAGS="--cfg doc_cfg" cargo +nightly doc --features=stable --no-deps --open [features] # All features usable on stable rust stable = ["winit", "x11", "wayland", "markdown", "yaml", "json", "ron", "shaping", "clipboard", "spawn", "dark-light", "serde"] # Use full specialization spec = [] # 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 = [] # Enable Markdown parsing markdown = ["kas-text/markdown"] # Enable text shaping shaping = ["kas-text/shaping"] # Alternative: use Harfbuzz library for shaping harfbuzz = ["kas-text/harfbuzz"] # Enable support for YAML (de)serialisation yaml = ["serde", "dep:serde_yaml"] # Enable support for JSON (de)serialisation json = ["serde", "dep:serde_json"] # Enable support for RON (de)serialisation ron = ["serde", "dep:ron"] # Enable support for TOML (de)serialisation toml = ["serde", "dep:toml"] # Enables clipboard read/write clipboard = ["dep:arboard", "dep:smithay-clipboard"] # Inject logging into macro-generated code. # Requires that all crates using these macros depend on the log crate. macros_log = ["kas-macros/log"] # Enable winit support winit = ["dep:winit"] # Support Wayland wayland = ["winit?/wayland", "winit?/wayland-dlopen"] # Support X11 x11 = ["winit?/x11"] # Enable serde integration (mainly config read/write) serde = ["dep:serde", "kas-text/serde", "winit?/serde"] # Automatically detect usage of dark theme dark-light = ["dep:dark-light"] # Support spawning async tasks spawn = ["dep:async-global-executor"] # Optimise Node using unsafe code unsafe_node = [] [build-dependencies] cfg_aliases = "0.1.1" [dependencies] log = "0.4" smallvec = "1.6.1" bitflags = "2.3.3" unicode-segmentation = "1.7" linear-map = "1.2.0" thiserror = "1.0.23" serde = { version = "1.0.123", features = ["derive"], optional = true } serde_json = { version = "1.0.61", optional = true } serde_yaml = { version = "0.9.9", optional = true } ron = { version = "0.8.0", package = "ron", optional = true } toml = { version = "0.8.2", package = "toml", optional = true } num_enum = "0.7.0" dark-light = { version = "1.0", optional = true } raw-window-handle = "0.5.0" async-global-executor = { version = "2.3.1", optional = true } cfg-if = "1.0.0" smol_str = "0.2.0" [target.'cfg(any(target_os="linux", target_os="dragonfly", target_os="freebsd", target_os="netbsd", target_os="openbsd"))'.dependencies] smithay-clipboard = { version = "0.7.0", optional = true } [target.'cfg(not(target_os = "android"))'.dependencies] arboard = { version = "3.2.0", optional = true, default-features = false } [dependencies.kas-macros] version = "0.14.1" path = "../kas-macros" [dependencies.kas-text] version = "0.6.0" [dependencies.easy-cast] version = "0.5.0" # used in doc links [dependencies.winit] # Provides translations for several winit types version = "0.29.2" optional = true default-features = false features = ["rwh_05"]