[package]
name = "ext-php-rs"
description = "Bindings for the Zend API to build PHP extensions natively in Rust."
repository = "https://github.com/extphprs/ext-php-rs"
homepage = "https://ext-php.rs"
license = "MIT OR Apache-2.0"
keywords = ["php", "ffi", "zend"]
version = "0.15.12"
authors = [
    "Pierre Tondereau <pierre.tondereau@protonmail.com>",
    "Xenira <xenira@php.rs>",
    "David Cole <david.cole1340@gmail.com>",
]
edition = "2024"
categories = ["api-bindings"]
exclude = ["/.github", "/.crates", "/benches"]
autotests = false

[dependencies]
bitflags = "2"
parking_lot = { version = "0.12.3", features = ["arc_lock"] }
cfg-if = "1.0"
once_cell = "1.21"
anyhow = { version = "1", optional = true }
smartstring = { version = "1", optional = true }
indexmap = { version = "2", optional = true }
inventory = "0.3"
ext-php-rs-derive = { version = "=0.11.12", path = "./crates/macros" }

[dev-dependencies]
skeptic = "0.13"

[build-dependencies]
anyhow = "1"
ext-php-rs-bindgen = { version = "0.72.1-extphprs.1", default-features = false, features = [
    "logging",
    "prettyplease",
] }
cc = "1.2"
skeptic = "0.13"
ext-php-rs-build = { version = "0.1.1", path = "./crates/php-build" }

[target.'cfg(windows)'.build-dependencies]
ureq = { version = "3.0", features = [
    "native-tls",
    "gzip",
], default-features = false }
native-tls = "0.2"
zip = "8.0"

[features]
default = ["enum", "runtime"]
closure = []
embed = []
anyhow = ["dep:anyhow"]
smartstring = ["dep:smartstring"]
indexmap = ["dep:indexmap"]
enum = []
observer = []
runtime = ["ext-php-rs-bindgen/runtime"]
static = ["ext-php-rs-bindgen/static"]

[workspace]
members = ["crates/macros", "crates/cli", "crates/php-build", "tests"]

[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "docs"]

[lints.rust]
missing_docs = "warn"

[[example]]
name = "hello_world"
crate-type = ["cdylib"]

[[example]]
name = "observer"
crate-type = ["cdylib"]
required-features = ["observer"]

[[example]]
name = "zend_extension"
crate-type = ["cdylib"]
required-features = ["observer"]

[[test]]
name = "guide_tests"
path = "tests/guide.rs"
required-features = ["embed", "closure", "anyhow"]

[[test]]
name = "module_tests"
path = "tests/module.rs"

[[test]]
name = "sapi_tests"
path = "tests/sapi.rs"
