Files
gridline/desktop/src-tauri/Cargo.toml
T
adrianbonpin 46e0dc2cee
Release / windows (push) Failing after 18m23s
Release / linux (push) Canceled after 22m17s
fix: bind edited PG cell values via text wire format
The frontend commits edited cell values as plain strings (and PK locators as
numbers/booleans), but tokio-postgres' String binds only text-ish types and
i64 only int8, so editing integer/boolean/uuid/jsonb/… columns failed with
'cannot convert between the Rust type and the Postgres type'.

Introduce PgText — a ToSql impl that accepts any Postgres type and writes the
value as UTF-8 in text wire format so the server parses it into the column's
own type. NULL binds as SQL NULL. Adds the bytes crate and unit tests.
2026-09-01 05:17:47 +08:00

52 lines
2.2 KiB
TOML

[package]
name = "gridline"
version = "0.7.11"
description = "An open-source, high-performance database GUI client for PostgreSQL and beyond"
authors = ["you"]
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
# The `_lib` suffix may seem redundant but it is necessary
# to make the lib name unique and wouldn't conflict with the bin name.
# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
name = "gridline_lib"
crate-type = ["staticlib", "cdylib", "rlib"]
[build-dependencies]
tauri-build = { version = "2", features = [] }
[dependencies]
tauri = { version = "2", features = [] }
tauri-plugin-opener = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
rusqlite = { version = "0.31", features = ["bundled"] }
# URL percent-encoding for tokio-postgres connection strings (user/password may contain special chars)
urlencoding = "2"
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1", features = ["v4", "serde"] }
tauri-plugin-dialog = "2"
tauri-plugin-fs = "2"
tokio = { version = "1", features = ["full"] }
tokio-postgres = { version = "0.7", features = ["with-chrono-0_4", "with-uuid-1", "with-serde_json-1"] }
bytes = "1"
sqlx = { version = "0.8", features = ["runtime-tokio", "mysql", "tls-rustls", "json"] }
redis = { version = "0.27", features = ["tokio-comp"] }
# async-ssh2 is not available at v0.4; using synchronous ssh2 via tokio::task::spawn_blocking per plan's fallback
# vendored-openssl: link OpenSSL statically so the release binary has NO
# runtime dependency on the build machine's Homebrew openssl (@/opt/homebrew
# absolute LC_LOAD_DYLIB — dyld aborts on user machines without it).
ssh2 = { version = "0.9", features = ["vendored-openssl"] }
deadpool-postgres = { version = "0.14" }
indexmap = { version = "2", features = ["serde"] }
tauri-plugin-keyring-store = { version = "0.2.0", default-features = false }
tokio-postgres-rustls = "0.12"
# rustls: ring-only crypto provider (no aws-lc-rs / cmake C build); tls12 needed for Postgres
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12", "logging"] }
rustls-pemfile = "2"
rustls-pki-types = "1"
rustls-native-certs = "0.7"