[package] name = "postgrpc" version = "0.1.2" authors = ["Alex Pearson "] edition = "2021" license = "MIT" description = "A JSON-transcoding-ready gRPC server for querying Postgres databases" keywords = ["postgres", "json", "grpc", "grpc-web"] homepage = "https://github.com/boilerplatter/postgrpc" repository = "https://github.com/boilerplatter/postgrpc" readme = "README.md" [badges.maintenance] status = "actively-developed" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [lib] doctest = false path = "src/lib.rs" [[bin]] name = "postgrpc" path = "src/main.rs" doc = false required-features = ["server", "deadpool"] [build-dependencies] pbjson-build = "0.4.0" tonic-build = "0.8.0" [dependencies] bytes = "1.2.1" futures-util = "0.3.23" num = "0.4.0" pbjson = "0.4.0" pbjson-types = "0.4.0" postgres_array = "0.11.0" prost = "0.11.0" serde_json = "1.0.83" thiserror = "1.0.32" tokio-stream = "0.1.9" tracing = "0.1.36" [dependencies.deadpool-postgres] optional = true features = ["serde"] version = "0.10.2" [dependencies.envy] optional = true version = "0.4.2" [dependencies.native-tls] optional = true version = "0.2.10" [dependencies.num_cpus] optional = true version = "1.13.1" [dependencies.pin-project-lite] optional = true version = "0.2.9" [dependencies.postgres-native-tls] optional = true version = "0.5.0" [dependencies.serde] features = ["derive"] version = "1.0.143" [dependencies.tokio] default-features = false features = ["macros", "signal", "rt-multi-thread"] version = "1.20.1" [dependencies.tokio-postgres] features = ["with-serde_json-1"] version = "0.7.6" [dependencies.tonic] default-features = false features = ["codegen", "prost", "transport"] version = "0.8.0" [dependencies.tonic-health] optional = true version = "0.7.0" [dependencies.tonic-reflection] optional = true version = "0.5.0" [dependencies.tonic-web] optional = true version = "0.4.0" [dependencies.tower-http] default-features = false features = ["trace"] version = "0.3.4" [dependencies.tracing-subscriber] features = ["env-filter"] version = "0.3.15" [dependencies.uuid] optional = true features = ["v4"] version = "1.1.2" [features] default = [ "server", "transaction", "ssl-native-tls", "health", "deadpool", "reflection", "role-header" ] deadpool = [ "deadpool-postgres", "pin-project-lite", "num_cpus" ] ssl-native-tls = [ "native-tls", "postgres-native-tls" ] transaction = ["uuid"] server = ["envy"] health = ["tonic-health"] reflection = ["tonic-reflection"] web = ["tonic-web"] role-header = [] # TODO: features # - channels (LISTEN + NOTIFY) # - watch-able materialized views # - server log output runtime configuration # - native json transcoding