reddb_server/wire/postgres/mod.rs
1//! PostgreSQL wire protocol compatibility layer (Phase 3.1 PG parity).
2//!
3//! Exposes a minimal subset of the PG v3 protocol so `psql`, JDBC drivers
4//! (pgjdbc), node-postgres, pgAdmin, DBeaver, and friends can connect to
5//! RedDB as if it were PostgreSQL.
6//!
7//! # Scope (Phase 3.1)
8//!
9//! * Startup message negotiation (protocol version 3.0 / 196608).
10//! * Authentication: `trust` only (no password). Clients that send an
11//! actual password are accepted — the password is ignored.
12//! * Simple query protocol (`Q` frames): parse → execute → stream rows.
13//! * Extended query protocol (`Parse` / `Bind` / `Describe` / `Execute`).
14//! * Minimal row description using a small OID mapping table.
15//! * ReadyForQuery + CommandComplete + ErrorResponse framing.
16//!
17//! Not in this phase (future 3.1.x):
18//! * SASL / SCRAM auth, TLS.
19//! * Function-call protocol.
20//! * COPY protocol.
21//! * NOTIFY / LISTEN.
22
23pub mod protocol;
24pub mod server;
25pub mod types;
26
27mod catalog_views;
28
29pub use protocol::{BackendMessage, FrontendMessage, PgWireError};
30pub use server::{start_pg_wire_listener, PgWireConfig};
31pub use types::{value_to_pg_wire_bytes, PgOid};