Skip to content

Commit 7c038d3

Browse files
committed
Update README
1 parent 367c32c commit 7c038d3

File tree

2 files changed

+3
-4
lines changed

2 files changed

+3
-4
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ This project has been adapted from PostgresClientKit, with the following changes
1313
- Designed to be fully asynchronous, using Swift 5.5 structured concurrency.
1414
- The network backend now uses Apple’s Network Framework, removing Kitura BlueSocket and BlueSSLService dependencies which are no longer supported.
1515
- 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/).
1717
- All requests and responses are now sendable structs instead of classes.
1818
- When using extended query mode, queries execute on named portals instead of the default portal.
1919
- Tests have been migrated from XCTest to Swift Testing.
2020

2121
## Features
2222

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`.
2424

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`.
2626

2727
- **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`.
2828

Sources/SwiftPostgresClient/Connection.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ public actor Connection {
151151
}
152152
}
153153

154-
155154
private func emitNotification(_ notification: ServerMessage) {
156155
notificationContinuation.yield(notification)
157156
}

0 commit comments

Comments
 (0)