[package]
edition = "2024"
rust-version = "1.88"
name = "pg-proto"
version = "0.2.1"
authors = ["James Sadler <freshtonic@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Session-typed PostgreSQL wire protocol"
homepage = "https://github.com/freshtonic/pg-proto"
documentation = "https://docs.rs/pg-proto"
readme = "README.md"
keywords = [
"postgresql",
"protocol",
"proxy",
"typestate",
"async",
]
categories = [
"database",
"network-programming",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/freshtonic/pg-proto"
[lib]
name = "pg_proto"
path = "src/lib.rs"
[[example]]
name = "intermediary_pipeline"
path = "examples/intermediary_pipeline.rs"
[[example]]
name = "protocol_logging_proxy"
path = "examples/protocol_logging_proxy/main.rs"
[[example]]
name = "proxy_skeleton"
path = "examples/proxy_skeleton.rs"
[[example]]
name = "rewriting_intermediary"
path = "examples/rewriting_intermediary.rs"
[[example]]
name = "sql_logging_proxy"
path = "examples/sql_logging_proxy/main.rs"
[[test]]
name = "compile_fail"
path = "tests/compile_fail.rs"
[[test]]
name = "intermediary_harness"
path = "tests/intermediary_harness.rs"
[[test]]
name = "intermediary_pipeline"
path = "tests/intermediary_pipeline.rs"
[[test]]
name = "logging_proxy_example"
path = "tests/logging_proxy_example.rs"
[[test]]
name = "postgres_container"
path = "tests/postgres_container.rs"
[[test]]
name = "recorded_fixtures"
path = "tests/recorded_fixtures.rs"
[[test]]
name = "security"
path = "tests/security.rs"
[[test]]
name = "server_role"
path = "tests/server_role.rs"
[[bench]]
name = "protocol_budget"
path = "benches/protocol_budget.rs"
harness = false
[dependencies.base64]
version = "0.22.1"
[dependencies.bytes]
version = "1.12.1"
[dependencies.hmac]
version = "0.13.0"
[dependencies.pg-proto-fsm]
version = "0.2.1"
[dependencies.postgres-protocol]
version = "0.6.12"
[dependencies.rand]
version = "0.10.2"
[dependencies.rustls]
version = "0.23.43"
[dependencies.sha2]
version = "0.11.0"
[dependencies.stringprep]
version = "0.1.5"
[dependencies.subtle]
version = "2.6.1"
[dependencies.tokio]
version = "1.53.1"
features = ["io-util"]
[dependencies.tokio-rustls]
version = "0.26.4"
[dependencies.tokio-util]
version = "0.7.19"
features = ["codec"]
[dependencies.x509-parser]
version = "0.18.1"
[dev-dependencies.rcgen]
version = "0.14.8"
[dev-dependencies.testcontainers-modules]
version = "0.15.0"
features = ["postgres"]
[dev-dependencies.tokio]
version = "1.53.1"
features = [
"macros",
"rt-multi-thread",
"net",
"io-util",
"time",
]
[dev-dependencies.tokio-postgres]
version = "0.7.18"
[dev-dependencies.tokio-postgres-rustls]
version = "0.13.0"
[dev-dependencies.trybuild]
version = "1.0.120"
[lints.clippy]
future_not_send = "allow"
missing_const_for_fn = "allow"
multiple_crate_versions = "allow"
option_if_let_else = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.cargo]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "deny"
unsafe_code = "forbid"