[package] name = "pgwire" version = "0.26.0" edition = "2021" authors = ["Ning Sun "] license = "MIT/Apache-2.0" description = "Postgresql wire protocol implemented as a library" keywords = ["database", "postgresql"] categories = ["database"] homepage = "https://github.com/sunng87/pgwire" repository = "https://github.com/sunng87/pgwire" documentation = "https://docs.rs/crate/pgwire/" readme = "README.md" rust-version = "1.74" [dependencies] derive-new = "0.7" bytes = "1.1.0" thiserror = "1" ## api tokio = { version = "1.19", features = [ "net", "rt", "io-util", ], optional = true } tokio-util = { version = "0.7.3", features = ["codec", "io"], optional = true } tokio-rustls = { version = "0.26", optional = true, default-features = false, features = ["logging", "tls12"]} futures = { version = "0.3", optional = true } async-trait = { version = "0.1", optional = true } rand = { version = "0.8", optional = true } md5 = { version = "0.7", optional = true } hex = { version = "0.4", optional = true } ## scram libraries base64 = { version = "0.22", optional = true } ring = { version = "0.17", optional = true } aws-lc-rs = { version = "1.7", optional = true } stringprep = { version = "0.1.2", optional = true } x509-certificate = { version = "0.23", optional = true } ## types postgres-types = { version = "0.2", features = [ "with-chrono-0_4", "array-impls", ], optional = true } chrono = { version = "0.4", features = ["std"], optional = true } rust_decimal = { version = "1.35", features = ["db-postgres"], optional = true } lazy-regex = {version = "3.3", default-features = false, features = ["lite"]} [features] default = ["server-api-aws-lc-rs"] ring = ["dep:ring", "tokio-rustls/ring"] aws-lc-rs = ["dep:aws-lc-rs", "tokio-rustls/aws-lc-rs"] server-api = [ "dep:tokio", "dep:tokio-util", "dep:tokio-rustls", "dep:futures", "dep:async-trait", "dep:rand", "dep:md5", "dep:hex", "dep:postgres-types", "dep:chrono", "dep:rust_decimal", ] server-api-ring = ["server-api", "ring"] server-api-aws-lc-rs = ["server-api", "aws-lc-rs"] scram = ["dep:base64", "dep:stringprep", "dep:x509-certificate"] _duckdb = [] _sqlite = [] _bundled = ["duckdb/bundled", "rusqlite/bundled"] [dev-dependencies] tokio = { version = "1.19", features = ["rt-multi-thread", "net", "macros"]} rusqlite = { version = "0.32.1", features = ["column_decltype"] } ## for duckdb example duckdb = { version = "1.0.0" } ## for loading custom cert files rustls-pemfile = "2.0" rustls-pki-types = "1.0" ## webpki-roots has mozilla's set of roots ## rustls-native-certs loads roots from current system gluesql = { version = "0.15", default-features = false, features = ["memory-storage"] } [workspace] members = [ ".", "tests-integration/rust-client", "tests-integration/test-server" ] [[example]] name = "server" required-features = ["server-api"] [[example]] name = "secure_server" required-features = ["server-api"] [[example]] name = "bench" required-features = ["server-api"] [[example]] name = "gluesql" required-features = ["server-api"] [[example]] name = "sqlite" required-features = ["server-api", "_sqlite"] [[example]] name = "duckdb" required-features = ["server-api", "_duckdb"] [[example]] name = "copy" required-features = ["server-api"] [[example]] name = "scram" required-features = ["scram"] [[example]] name = "transaction" required-features = ["server-api"]