[package]
name = "cocoanut"
version = "0.1.1"
edition = "2024"
authors = ["Ying Kit WONG"]
description = "A Rust wrapper for Cocoa to develop macOS-specific GUI applications"
license = "Apache-2.0"
repository = "https://github.com/yingkitw/cocoanut"
keywords = ["cocoa", "macos", "gui", "native", "appkit"]
categories = ["gui", "os::macos-apis"]
build = "build.rs"
[features]
default = []
test-mock = []
[dependencies]
objc = "0.2"
cocoa = "0.25"
core-graphics = "0.23"
core-foundation = "0.9"
dispatch = "0.2"
thiserror = "2.0"
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1.0", features = ["full"] }
futures = "0.3"
proc-macro2 = "1.0"
quote = "1.0"
syn = { version = "2.0", features = ["full"] }
libc = "0.2"
serde_json = "1.0"
[dev-dependencies]
criterion = "0.5"
insta = "1.39"
[[test]]
name = "control_tests_simple"
path = "tests/control_tests_simple.rs"
required-features = ["test-mock"]
[[test]]
name = "async_tests_simple"
path = "tests/async_tests_simple.rs"
required-features = ["test-mock"]
[[test]]
name = "drawing_tests_simple"
path = "tests/drawing_tests_simple.rs"
required-features = ["test-mock"]
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
required-features = ["test-mock"]
[[test]]
name = "macos_integration_tests_simple"
path = "tests/macos_integration_tests_simple.rs"
required-features = ["test-mock"]
[[test]]
name = "streaming_tests_simple"
path = "tests/streaming_tests_simple.rs"
required-features = ["test-mock"]
[[test]]
name = "window_tests"
path = "tests/window_tests.rs"
required-features = ["test-mock"]
[[test]]
name = "zero_cost_tests_simple"
path = "tests/zero_cost_tests_simple.rs"
required-features = ["test-mock"]
[[test]]
name = "component_tests"
path = "tests/component_tests.rs"
required-features = ["test-mock"]
[lib]
name = "cocoanut"
path = "src/lib.rs"
[[example]]
name = "basic_window"
path = "examples/basic_window.rs"
[[example]]
name = "menu_app"
path = "examples/menu_app.rs"
[[example]]
name = "modern_features_simple"
path = "examples/modern_features_simple.rs"
[[example]]
name = "window_builder_example"
path = "examples/window_builder_example.rs"
[[example]]
name = "comprehensive_components"
path = "examples/comprehensive_components.rs"
[[example]]
name = "event_binding_example"
path = "examples/event_binding_example.rs"
[[example]]
name = "comprehensive_app"
path = "examples/comprehensive_app.rs"
[[example]]
name = "minimal_app"
path = "examples/minimal_app.rs"
[[example]]
name = "interactive_controls"
path = "examples/interactive_controls.rs"
[profile.dev]
opt-level = 0
incremental = true
split-debuginfo = "packed"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
strip = true
[profile.bench]
inherits = "release"
debug = true