[package]
edition = "2024"
rust-version = "1.88"
name = "frust-native-widgets"
version = "0.5.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Real native controls (Android Views, UIKit, AppKit) for Frust apps, written from pure Rust and hosted as platform views."
homepage = "https://frust.dev"
readme = "README.md"
keywords = [
"gui",
"ui",
"mobile",
"declarative",
"wgpu",
]
categories = ["gui"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/frust-rs/frust"
resolver = "2"
[features]
default = ["frust-api"]
demo-components = ["frust-api"]
frust-api = [
"dep:frust",
"dep:frust-core",
"dep:frust-theme",
"dep:kurbo",
]
[lib]
name = "frust_native_widgets"
path = "src/lib.rs"
[[test]]
name = "kotlin_conformance"
path = "tests/kotlin_conformance.rs"
[[test]]
name = "limitation_conformance"
path = "tests/limitation_conformance.rs"
[dependencies.frust]
version = "0.5.2"
optional = true
package = "frust-ui"
[dependencies.frust-core]
version = "0.5.2"
optional = true
[dependencies.frust-plugin]
version = "0.5.2"
[dependencies.frust-theme]
version = "0.5.2"
optional = true
[dependencies.kurbo]
version = "0.13.1"
optional = true
[dependencies.log]
version = "0.4"
[dependencies.thiserror]
version = "2"
[dev-dependencies.frust-scene]
version = "0.5.2"
[dev-dependencies.frust-text]
version = "0.5.2"
[dev-dependencies.kurbo]
version = "0.13.1"
[dev-dependencies.peniko]
version = "0.6.1"
[target.'cfg(target_os = "android")'.dependencies.jni]
version = "0.22"
[target.'cfg(target_os = "ios")'.dependencies.block2]
version = "0.6"
features = ["std"]
default-features = false
[target.'cfg(target_os = "ios")'.dependencies.dispatch2]
version = "0.3"
features = [
"std",
"block2",
]
default-features = false
[target.'cfg(target_os = "ios")'.dependencies.objc2]
version = "0.6"
[target.'cfg(target_os = "ios")'.dependencies.objc2-core-foundation]
version = "0.3"
features = [
"std",
"CFData",
]
default-features = false
[target.'cfg(target_os = "ios")'.dependencies.objc2-core-text]
version = "0.3"
features = [
"std",
"CTFont",
"CTFontDescriptor",
"CTFontManager",
]
default-features = false
[target.'cfg(target_os = "ios")'.dependencies.objc2-foundation]
version = "0.3"
features = [
"std",
"NSObject",
"NSString",
"NSData",
"NSDate",
"NSCalendar",
"NSLocale",
"NSArray",
"NSSet",
"NSEnumerator",
"NSNotification",
]
default-features = false
[target.'cfg(target_os = "ios")'.dependencies.objc2-quartz-core]
version = "0.3"
features = [
"std",
"CALayer",
"objc2-core-foundation",
]
default-features = false
[target.'cfg(target_os = "ios")'.dependencies.objc2-ui-kit]
version = "0.3"
features = [
"std",
"UIView",
"UIButton",
"UIControl",
"UILabel",
"UIResponder",
"UISwitch",
"UISlider",
"UIProgressView",
"UIImage",
"UIImageView",
"UIActivityIndicatorView",
"UISegmentedControl",
"UIStepper",
"UIDatePicker",
"UITabBar",
"UITabBarItem",
"UIBarItem",
"UITabBarAppearance",
"UIBarAppearance",
"UIColor",
"UIFont",
"UIAccessibility",
"UIInterface",
"UIApplication",
"UIScene",
"UISceneDefinitions",
"UIWindowScene",
"UIWindow",
"UIViewController",
"UIAlertController",
"UIPresentationController",
"UIPopoverPresentationController",
"UISheetPresentationController",
"UIStackView",
"NSLayoutAnchor",
"NSLayoutConstraint",
"UILayoutGuide",
"UIDevice",
"block2",
"objc2-core-foundation",
"objc2-quartz-core",
"objc2-core-text",
]
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.block2]
version = "0.6"
features = ["std"]
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.dispatch2]
version = "0.3"
features = [
"std",
"block2",
]
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2]
version = "0.6"
[target.'cfg(target_os = "macos")'.dependencies.objc2-app-kit]
version = "0.3"
features = [
"std",
"NSView",
"NSResponder",
"NSControl",
"NSButton",
"NSButtonCell",
"NSCell",
"NSTextField",
"NSSwitch",
"NSSlider",
"NSSliderCell",
"NSProgressIndicator",
"NSSegmentedControl",
"NSSegmentedCell",
"NSStepper",
"NSDatePicker",
"NSDatePickerCell",
"NSImageView",
"NSImageCell",
"NSImage",
"NSColor",
"NSFont",
"NSAppearance",
"NSGraphics",
"NSAccessibilityProtocols",
"NSApplication",
"NSWindow",
"NSAlert",
"NSPopover",
"NSViewController",
"block2",
"objc2-quartz-core",
"objc2-core-text",
"objc2-core-foundation",
]
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2-core-foundation]
version = "0.3"
features = [
"std",
"CFData",
]
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2-core-graphics]
version = "0.3"
features = [
"std",
"CGColor",
]
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2-core-text]
version = "0.3"
features = [
"std",
"CTFont",
"CTFontDescriptor",
"CTFontManager",
]
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2-foundation]
version = "0.3"
features = [
"std",
"NSObject",
"NSString",
"NSData",
"NSDate",
"NSCalendar",
"NSLocale",
"NSGeometry",
"NSArray",
"NSEnumerator",
"NSNotification",
"objc2-core-foundation",
]
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2-quartz-core]
version = "0.3"
features = [
"std",
"CALayer",
"objc2-core-foundation",
"objc2-core-graphics",
]
default-features = false