1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
[]
= "spg-server"
= { = true }
= { = true }
= { = true }
= { = true }
= "README.md"
= "SPG daemon — listens for self-built wire-frame connections and PG-wire (libpq-compatible)."
= { = true }
= ["database-implementations", "network-programming"]
= ["spg", "database", "server", "sql", "postgres"]
[[]]
= "spg-server"
= "src/main.rs"
# v7.13.0 (C5, mailrs round-5) — pg_isready-compatible health
# probe. Thin TCP-connect on the PG-wire port; exits 0 if the
# server accepts connections, 2 otherwise (matching PG's
# pg_isready return codes).
[[]]
= "pg_isready"
= "src/bin/pg_isready.rs"
[]
= { = true }
# v6.1.1: pgwire's Extended Query path stores the parsed AST in
# the prepared-statement cache (`spg_sql::ast::Statement`), so
# spg-server depends on spg-sql directly. Pre-v6.1.1 only used
# the engine's opaque `execute(sql)` API.
= { = true }
= { = true }
= { = true }
# v7.37.42-arena Phase 2 — pgwire allocates a per-query Bump arena
# and threads it into the SCALARSQ streaming executor so the row
# scratch + projection buffer live in the arena (bulk reset at
# query end instead of per-row Drop).
= { = true }
= { = true }
= { = true }
# v7.1 — manifest format extracted into a standalone crate so
# spg-embedded can read + write the same bytes spg-server does.
= { = true }
# v7.39 (tz epic) — IANA timezone lookups (RFC 8536 TZif reader over
# the system zoneinfo; zero external dependencies).
= { = true }
# v4.33 ops three-pack uses POSIX FFI for:
# - signal(SIGTERM/SIGINT) to drive graceful shutdown
# - statvfs(2) to compute WAL volume free space for the disk water-mark
# Both are macOS + Linux. Each call site is wrapped in
# `#[allow(unsafe_code)]` and stays a tight FFI shim.
= "0.2"
# v7.17.0 Phase 3.P0-77 — TLS for the MySQL-wire `CLIENT_SSL`
# mid-handshake upgrade. rustls is pure Rust (no system OpenSSL
# requirement); rcgen mints a runtime self-signed cert when no
# operator-supplied certificate path is configured via env.
= { = "0.23", = false, = ["std", "logging", "tls12", "ring"] }
= { = "0.13", = false, = ["pem", "ring"] }
[]
= { = true }
# v4.33: e2e_graceful_shutdown sends SIGTERM via kill(2) — the
# child-process abstraction defaults to SIGKILL which would
# bypass the drain path under test.
= "0.2"
# v7.17.0 Phase 3.P0-71 — the mysql_native_password e2e tests
# need to compute the client's auth_response (SHA1-based) to
# verify the server validates it correctly.
= { = "0.10", = false }
# v7.17.0 Phase 3.P0-72 — same shape for caching_sha2_password
# (SHA256-based fast path).
= { = "0.10", = false }
# v7.17.0 Phase 3.P0-77 — the SSL e2e test drives the client side
# of a TLS handshake against the server's self-signed cert.
= { = "0.23", = false, = ["std", "logging", "tls12", "ring"] }
# v7.39 (TLS/SCRAM Phase 3) — the SCRAM-SHA-256-PLUS e2e drives the client side
# of the SASL exchange (PBKDF2 / HMAC / SHA-256 / base64) against the server.
= { = true }
[]
= true