cocoanut 0.1.0

A Rust wrapper for Cocoa to develop macOS-specific GUI applications
[package]
name = "cocoanut"
version = "0.1.0"
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"]

[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"] }
# Async/await and streaming support
tokio = { version = "1.0", features = ["full"] }
futures = "0.3"
# Type-safe macros
proc-macro2 = "1.0"
quote = "1.0"
syn = { version = "2.0", features = ["full"] }
# Additional dependencies
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"
path = "examples/modern_features.rs"

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
strip = true