[package]
edition = "2021"
rust-version = "1.76"
name = "systemconfiguration-rs"
version = "0.5.3"
authors = ["Per Johansson <per@doom.fish>"]
build = "build.rs"
include = [
"src/**/*",
"swift-bridge/Package.swift",
"swift-bridge/Sources/**/*",
"examples/**/*",
"tests/**/*",
"build.rs",
"Cargo.toml",
"README.md",
"CHANGELOG.md",
"COVERAGE.md",
"LICENSE-*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Safe Rust bindings for Apple's SystemConfiguration framework via a Swift bridge on macOS"
homepage = "https://github.com/doom-fish/systemconfiguration-rs"
readme = "README.md"
keywords = [
"systemconfiguration",
"macos",
"network",
"reachability",
"apple",
]
categories = [
"api-bindings",
"network-programming",
"os::macos-apis",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/doom-fish/systemconfiguration-rs"
[package.metadata.docs.rs]
all-features = true
default-target = "aarch64-apple-darwin"
targets = [
"aarch64-apple-darwin",
"x86_64-apple-darwin",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[badges.maintenance]
status = "actively-developed"
[features]
async = ["dep:doom-fish-utils"]
default = []
raw-ffi = []
[lib]
name = "systemconfiguration"
crate-type = ["lib"]
path = "src/lib.rs"
[[example]]
name = "01_dynamic_store_overview"
path = "examples/01_dynamic_store_overview.rs"
[[example]]
name = "02_network_configuration_overview"
path = "examples/02_network_configuration_overview.rs"
[[example]]
name = "03_network_reachability"
path = "examples/03_network_reachability.rs"
[[example]]
name = "04_preferences_session"
path = "examples/04_preferences_session.rs"
[[example]]
name = "05_schema_catalog"
path = "examples/05_schema_catalog.rs"
[[example]]
name = "06_network_services"
path = "examples/06_network_services.rs"
[[example]]
name = "07_network_sets"
path = "examples/07_network_sets.rs"
[[example]]
name = "08_network_interface"
path = "examples/08_network_interface.rs"
[[example]]
name = "09_network_protocol"
path = "examples/09_network_protocol.rs"
[[example]]
name = "10_console_user"
path = "examples/10_console_user.rs"
[[example]]
name = "11_captive_network"
path = "examples/11_captive_network.rs"
[[example]]
name = "23_schema_definitions_constants"
path = "examples/23_schema_definitions_constants.rs"
[[example]]
name = "50_async_dynamic_store"
path = "examples/50_async_dynamic_store.rs"
[[example]]
name = "51_async_reachability"
path = "examples/51_async_reachability.rs"
[[example]]
name = "52_async_preferences"
path = "examples/52_async_preferences.rs"
[[test]]
name = "async_stream_tests"
path = "tests/async_stream_tests.rs"
[[test]]
name = "captive_network_tests"
path = "tests/captive_network_tests.rs"
[[test]]
name = "console_user_tests"
path = "tests/console_user_tests.rs"
[[test]]
name = "dynamic_store_tests"
path = "tests/dynamic_store_tests.rs"
[[test]]
name = "network_configuration_tests"
path = "tests/network_configuration_tests.rs"
[[test]]
name = "network_interface_tests"
path = "tests/network_interface_tests.rs"
[[test]]
name = "network_protocol_tests"
path = "tests/network_protocol_tests.rs"
[[test]]
name = "network_reachability_tests"
path = "tests/network_reachability_tests.rs"
[[test]]
name = "network_services_tests"
path = "tests/network_services_tests.rs"
[[test]]
name = "network_sets_tests"
path = "tests/network_sets_tests.rs"
[[test]]
name = "preferences_tests"
path = "tests/preferences_tests.rs"
[[test]]
name = "schema_definitions_tests"
path = "tests/schema_definitions_tests.rs"
[[test]]
name = "schema_tests"
path = "tests/schema_tests.rs"
[[test]]
name = "system_configuration_tests"
path = "tests/system_configuration_tests.rs"
[dependencies.apple-cf]
version = ">=0.8, <0.10"
features = ["cg"]
default-features = false
[dependencies.doom-fish-utils]
version = ">=0.1, <0.3"
optional = true
[dependencies.libc]
version = "0.2"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dev-dependencies.pollster]
version = "0.3"
[lints.clippy.cargo]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
[profile.release]
debug = 2
strip = "none"