[package] name = "pg_durable" version = "0.2.6" edition = "2021" license = "PostgreSQL" repository = "https://github.com/microsoft/pg_durable" description = "Durable SQL Functions for PostgreSQL" [lib] crate-type = ["cdylib", "lib"] [[bin]] name = "pgrx_embed_pg_durable" path = "./src/bin/pgrx_embed.rs" [features] default = ["pg17"] http-allow-all = [] http-allow-azure-domains = [] http-allow-test-domains = ["http-allow-azure-domains"] # Compiles the background worker's timing hooks (see `test_pause_before_ready`). # Never enable in a shipped build: the hooks let the process environment stall # worker initialization. test-hooks = [] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg17 = ["pgrx/pg17", "pgrx-tests/pg17" ] pg18 = ["pgrx/pg18", "pgrx-tests/pg18" ] unsafe = ["pgrx/unsafe-postgres"] pg_test = [] [dependencies] pgrx = "=0.16.1" serde = { version = "1.0", features = ["derive"] } serde_json = { version = "1.0", features = ["preserve_order", "raw_value"] } uuid = { version = "1.0", features = ["v4", "serde"] } percent-encoding = "2.3" # duroxide integration duroxide = "=0.1.30" duroxide-pg = "=0.1.34" tokio = { version = "1", features = ["rt-multi-thread", "sync", "time"] } # For ExecuteSQL activity (connecting back to PostgreSQL) sqlx = { version = "0.8", features = ["runtime-tokio", "postgres", "json", "bigdecimal", "uuid", "chrono"] } bigdecimal = "0.4" # For cron expression parsing (wait_for_schedule) cron = "0.13" chrono = "0.4" # For HTTP requests (df.http). We set default-features = false and select # native-tls explicitly: in reqwest 0.13 the `default-tls` feature resolves to # rustls, NOT native-tls, so enabling defaults would silently switch our TLS # backend. native-tls keeps the openssl-backed connector (hyper-tls + # tokio-native-tls). duroxide-pg also selects native-tls on the same resolved # reqwest version; Cargo feature unification merges them, so the whole graph # stays on native-tls with no rustls/ring/aws-lc in the tree. reqwest = { version = "0.13", default-features = false, features = ["json", "native-tls", "multipart"] } # For df.http_multipart() — base64-decodes part payloads carried in the config JSON. base64 = "0.22" # For duroxide tracing integration tracing-subscriber = { version = "0.3", features = ["env-filter"] } [dev-dependencies] pgrx-tests = "=0.16.1" [profile.dev] panic = "unwind" [profile.release] panic = "unwind" opt-level = 3 lto = "fat" codegen-units = 1