pg_walstream 0.6.2

PostgreSQL logical replication protocol library - parse and handle PostgreSQL WAL streaming messages
Documentation
[package]
name = "pg_walstream"
version = "0.6.2"
edition = "2021"
authors = ["danielshih <dog830228@gmail.com>"]
license = "BSD-3-Clause"
repository = "https://github.com/isdaniel/pg-walstream"
homepage = "https://github.com/isdaniel/pg-walstream"
documentation = "https://docs.rs/pg_walstream"
readme = "README.md"
description = "PostgreSQL logical replication protocol library - parse and handle PostgreSQL WAL streaming messages"
keywords = ["postgresql", "replication", "wal", "logical-decoding", "streaming"]
categories = ["database", "parsing", "network-programming"]

[dependencies]
tokio = { version = "1.52.1", features = ["io-util", "net", "time", "macros", "rt", "rt-multi-thread"] }
tokio-util = "0.7.18"
serde = { version = "1.0.228", features = ["derive", "rc"] }
chrono = { version = "0.4.44", features = ["serde"] }
bytes = { version = "1.11.1", features = ["serde"] }
tracing = "0.1.44"
futures-core = "0.3.32"
memchr = "2.8.0"
smallvec = "1.15.1"

# libpq backend (default)
libpq-sys = { version = "0.8", optional = true }

# rustls-tls
tokio-rustls = { version = "0.26.4", optional = true }
rustls = { version = "0.23.38", default-features = false, features = ["std", "tls12"], optional = true }
webpki-roots = { version = "1.0.6", optional = true }
postgres-protocol = { version = "0.6.11", optional = true }
aws-lc-rs = { version = "1.16.2", optional = true }
socket2 = { version = "0.6.3", features = ["all"], optional = true }

[features]
default = ["libpq"]
libpq = ["dep:libpq-sys"]

# Pure-Rust native backend: uses rustls with aws-lc-rs forhardware-accelerated TLS crypto (AES-NI, AVX2, SHA-NI), requires cmake + C compiler at build time.
rustls-tls = [
    "dep:tokio-rustls",
    "dep:rustls",
    "dep:webpki-roots",
    "dep:postgres-protocol",
    "dep:aws-lc-rs",
    "dep:socket2",
    "rustls/aws_lc_rs",
]

[dev-dependencies]
tokio = { version = "1.52.1", features = ["full"] }
criterion = { version = "0.8.2", features = ["html_reports"] }
futures = "0.3.32"
serde_bytes = "0.11.19"

[[test]]
name = "snapshot_export"
path = "integration-tests/snapshot_export.rs"

[[test]]
name = "rate_limited_streaming"
path = "integration-tests/rate_limited_streaming.rs"

[[test]]
name = "safe_transaction_consumer"
path = "integration-tests/safe_transaction_consumer.rs"

[[test]]
name = "complex_types"
path = "integration-tests/complex_types.rs"

[[test]]
name = "typed_deserialization"
path = "integration-tests/typed_deserialization.rs"

[[test]]
name = "ssl_connections"
path = "integration-tests/ssl_connections.rs"

[[bench]]
name = "wal_pipeline"
harness = false