You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,16 +13,16 @@ This project has been adapted from PostgresClientKit, with the following changes
13
13
- Designed to be fully asynchronous, using Swift 5.5 structured concurrency.
14
14
- The network backend now uses Apple’s Network Framework, removing Kitura BlueSocket and BlueSSLService dependencies which are no longer supported.
15
15
- Channel binding support has been enabled, significantly reducing chances of man-in-the-middle attacks.
16
-
- Non-TLS connection support has been removed in favour of the [second alternate method](https://www.postgresql.org/docs/current/protocol-flow.html#PROTOCOL-FLOW-SSL) of connecting. This relies on Application-Layer Protocol Negotiation (ALPN) managed by Apple's Network framework, to directly negotiate a secure (TLS) connection without first sending a plain-text SSLRequest. This reduces connection latency and mitigates exposure to [CVE-2024-10977](https://www.postgresql.org/support/security/CVE-2024-10977/) and [CVE-2021-23222](https://www.postgresql.org/support/security/CVE-2021-23222/).
16
+
- Non-TLS connection support has been removed in favour of the [second alternate method](https://www.postgresql.org/docs/current/protocol-flow.html#PROTOCOL-FLOW-SSL) of connecting. This relies on Application-Layer Protocol Negotiation (ALPN) managed by Apple's Network framework, to directly negotiate a secure (TLS) connection without first sending a plain-text SSLRequest. This reduces connection latency and mitigates exposure to [CVE-2024-10977](https://www.postgresql.org/support/security/CVE-2024-10977/) and [CVE-2021-23222](https://www.postgresql.org/support/security/CVE-2021-23222/).
17
17
- All requests and responses are now sendable structs instead of classes.
18
18
- When using extended query mode, queries execute on named portals instead of the default portal.
19
19
- Tests have been migrated from XCTest to Swift Testing.
20
20
21
21
## Features
22
22
23
-
-**Doesn't require libpq.**SwiftPostgresClient implements the Postgres network protocol in Swift, so it does not require `libpq`.
23
+
-**Fully concurrent, asynchronous API.**Queries can execute off the main thread, essential in modern frameworks like SwiftUI. Query results are exposed as `AsyncSequence`s and server notifications can be subscribed to via an `AsyncStream`.
24
24
25
-
-**Fully concurrent, asynchronous API.**Query results are exposed as `AsyncSequence`s. Connections are stateful and modeled as actors, allowing protocol-level messages to be received concurrently on one task while results are processed by client code on another. This design ensures high performance and thread safety without explicit locking.
25
+
-**Doesn't require libpq.**SwiftPostgresClient implements the Postgres network protocol in Swift, so it does not require `libpq`.
26
26
27
27
-**Safe conversion between Postgres and Swift types.** Type conversion is explicit and robust. Conversion errors are signaled, not masked. These were adapted from PostgresClientKit, providing additional Swift types for dates and times to address the impedance mismatch between Postgres types and Foundation `Date`.
0 commit comments