# Copyright © SixtyFPS GmbH # SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 [package] name = "i-slint-core" description = "Internal Slint Runtime Library." authors.workspace = true documentation.workspace = true edition.workspace = true homepage.workspace = true keywords.workspace = true license.workspace = true repository.workspace = true rust-version.workspace = true version.workspace = true categories = ["gui", "development-tools", "no-std"] [lib] path = "lib.rs" [features] ffi = [] # Expose C ABI libm = ["num-traits/libm", "euclid/libm"] # Allow the viewer to query at runtime information about item types rtti = [] # Use the standard library std = ["euclid/std", "once_cell/std", "scoped-tls-hkt", "lyon_path", "lyon_algorithms", "lyon_geom", "lyon_extra", "dep:web-time", "image-decoders", "svg", "raw-window-handle-06?/std", "chrono/std", "chrono/wasmbind", "chrono/clock"] # Unsafe feature meaning that there is only one core running and all thread_local are static. # You can only enable this feature if you are sure that any API of this crate is only called # from a single core, and not in a interrupt or signal handler. unsafe-single-threaded = [] unicode = ["unicode-script", "unicode-linebreak"] software-renderer-systemfonts = ["shared-fontdb", "rustybuzz", "fontdue", "software-renderer"] software-renderer = ["bytemuck"] image-decoders = ["dep:image", "dep:clru"] svg = ["dep:resvg", "shared-fontdb"] box-shadow-cache = [] shared-fontdb = ["i-slint-common/shared-fontdb"] raw-window-handle-06 = ["dep:raw-window-handle-06"] default = ["std", "unicode"] [dependencies] i-slint-common = { workspace = true, features = ["default"] } i-slint-core-macros = { workspace = true, features = ["default"] } const-field-offset = { version = "0.1.5", path = "../../helper_crates/const-field-offset" } vtable = { workspace = true } portable-atomic = { version = "1", features = ["critical-section"] } auto_enums = "0.8.0" cfg-if = "1" derive_more = { workspace = true } euclid = { workspace = true } lyon_algorithms = { version = "1.0", optional = true } lyon_geom = { version = "1.0", optional = true } lyon_path = { version = "1.0", optional = true } lyon_extra = { version = "1.0.1", optional = true } num-traits = { version = "0.2", default-features = false } once_cell = { version = "1.5", default-features = false, features = ["critical-section"] } pin-project = "1" pin-weak = { version = "1.1", default-features = false } # Note: the rgb version is extracted in ci.yaml for rustdoc builds rgb = "0.8.27" scoped-tls-hkt = { version = "0.1", optional = true } scopeguard = { version = "1.1.0", default-features = false } slab = { version = "0.4.3", default-features = false } static_assertions = "1.1" strum = { workspace = true } unicode-segmentation = "1.8.0" unicode-linebreak = { version = "0.1.2", optional = true } unicode-script = { version = "0.5.3", optional = true } integer-sqrt = { version = "0.1.5" } bytemuck = { workspace = true, optional = true, features = ["derive"] } image = { workspace = true, optional = true, default-features = false } clru = { workspace = true, optional = true } resvg = { workspace = true, optional = true } fontdb = { workspace = true, optional = true } serde = { workspace = true, optional = true } raw-window-handle-06 = { workspace = true, optional = true } bitflags = { version = "2.4.2"} chrono = { version = "0.4", default-features = false, features = ["alloc"] } [target.'cfg(target_family = "unix")'.dependencies] gettext-rs = { version = "0.7", optional = true, features = ["gettext-system"] } [target.'cfg(target_arch = "wasm32")'.dependencies] web-time = { version = "1.0", optional = true } wasm-bindgen = { version = "0.2" } web-sys = { version = "0.3", features = [ "HtmlImageElement" ] } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] fontdb = { workspace = true, optional = true, default-features = true } rustybuzz = { workspace = true, optional = true } fontdue = { workspace = true, optional = true } [dev-dependencies] slint = { path = "../../api/rs/slint", default-features = false, features = ["std", "compat-1-2"] } i-slint-backend-testing = { path="../backends/testing" } rustybuzz = { workspace = true } ttf-parser = { workspace = true } fontdb = { workspace = true, default-features = true } serde_json = { workspace = true } tiny-skia = "0.11.0" tokio = { version = "1.35", features = ["rt-multi-thread", "macros", "time", "net", "io-util"] } async-compat = { version = "0.2.4" } tempfile = { version = "3.12.0" } [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ["cfg(slint_debug_property)", "cfg(cbindgen)", "cfg(slint_int_coord)"] }