mirror of
https://github.com/clockworklabs/SpacetimeDB.git
synced 2026-05-13 11:17:50 -04:00
8adef2b93b
# Description of Changes Closes [#2686](https://github.com/clockworklabs/SpacetimeDB/issues/2686). Add support for listening using the [PG wire protocol](https://www.postgresql.org/docs/current/protocol.html) so `pg` clients could be used against the database. # API and ABI breaking changes The output of `duration` is changed to `rfc3339`, instead of the way is made with `sats` because is what is done in `pg`, see note below. # Expected complexity level and risk 2 ~~There is open questions that are in the [ticket #2686](https://github.com/clockworklabs/SpacetimeDB/issues/2686). Also the crate used here require `RustTls`, so it could be good idea to decide if~~: * ~~Rewrite a big chunk of code to use `OpenSSL`~~ * ~~Move to `RustTls` https://github.com/clockworklabs/SpacetimeDB/pull/1700~~ * ~~Pay for the extra compilation cost~~. I open another port(`5433`) to listen for `pg` connections using `ssl`. Need to be decided if this is the way or instead try to multi-plex the current port for both protocols. # Testing Only manual testing so far. Solving the above questions allow me to implement some unit tests. Also, not yet integrated into cloud for the same reasons. - [x] Adding some test for the binary encoding of special and primitive types - [x] Smoke test using `psql` that connect to the db instance and run some queries - [x] Manually inspect using a UI database explorer how infer the types, some of this tools generate special widgets when displaying `json, duration, etc` --------- Co-authored-by: Noa <coolreader18@gmail.com>
23 lines
565 B
TOML
23 lines
565 B
TOML
[package]
|
|
name = "spacetimedb-pg"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license-file = "LICENSE"
|
|
description = "Postgres wire protocol Server support for SpacetimeDB"
|
|
|
|
[dependencies]
|
|
spacetimedb-client-api-messages.workspace = true
|
|
spacetimedb-client-api.workspace = true
|
|
spacetimedb-lib.workspace = true
|
|
|
|
anyhow.workspace = true
|
|
async-trait.workspace = true
|
|
axum.workspace = true
|
|
futures.workspace = true
|
|
http.workspace = true
|
|
log.workspace = true
|
|
pgwire.workspace = true
|
|
thiserror.workspace = true
|
|
tokio.workspace = true
|