Swiftpack.co - Swift Packages by vapor

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.

Packages published by vapor

vapor/vapor 4.94.0
πŸ’§ A server-side Swift HTTP web framework.
⭐️ 23,802
πŸ•“ 2 days ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.94.0 - Migrate to Async NIOFileIO APIs
2 days ago
## What's Changed Migrate to Async NIOFileIO APIs by @0xTim in #3167 > This migrates `collectFile(at:)` and `writeFile(_:at:)` to use NIO’s async NIOFileIO APIs introduced in https://github.com/apple/swift-nio/releases/tag/2.63.0 > > Also adds a new API for streaming files using a `AsyncSequence` based on the new `NIOFileSystem`. > > This work is required to move the `DotEnv` support over to an async API to avoid calling `wait()`s in an async context which can cause issues ## Reviewers Thanks to the reviewers for their help: - @ptoffy ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.93.2...4.94.0
4.93.2 - Removed streamFile deprecation + deactivated advancedETagComparison by default
2 days ago
## What's Changed Removed streamFile deprecation + deactivated advancedETagComparison by default by @linus-hologram in #3177 > As discussed on Discord, this PR removes the deprecation and deactivates the lately introduced advanced ETag Comparison for the time being while the revised implementation is worked on. ## New Contributor - @linus-hologram made their first contribution in #3177 πŸŽ‰ ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.93.1...4.93.2
4.93.1 - Remove HeadResponder
3 days ago
## What's Changed Remove HeadResponder by @baarde in #3147 > The HEAD method is identical to GET except that the server must not send content in the response ([RFC 9110, section 9.3.2](https://datatracker.ietf.org/doc/html/rfc9110#HEAD)). > > The previous default behaviour of returning 200 OK to every HEAD request to a constant route is not standard-compliant. > > The new behaviour is to always forward the request to the GET route, unless the developer explicitely configured a custom HEAD route. > > This PR fixes #2680 and #2749. ## New Contributor - @baarde made their first contribution in #3147 πŸŽ‰ ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.93.0...4.93.1
4.93.0 - Advanced ETag Comparison now supported
5 days ago
## What's Changed Advanced ETag Comparison now supported by @linus-hologram in #3015 > Vapor now supports strong (byte-by-byte) ETag validation and caches ETags for rapid responses. This provides a stronger alternative to the current weak comparison, which only guarantees semantic file equivalence. This new strong comparison is enabled by default and can be deactivated during `FileMiddleware` initialization if needed. This PR closes #2948. > > - `streamFile` method was deprecated and replaced by an alternative returning an `EventLoopFuture` > - vapor’s unit tests were updated to reflect the changes > - documentation was updated to reflect the changes ## New Contributor - @linus-hologram made their first contribution in #3015 πŸŽ‰ ## Reviewers Thanks to the reviewers for their help: - @vzsg ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.9...4.93.0
4.92.9 - Enabled Request Decompression By Default
5 days ago
## What's Changed Enabled Request Decompression By Default by @dimitribouniol in #3175 > This enables request decompression by default and sets the decompression limit to 25Γ—. ## New Contributor - @dimitribouniol made their first contribution in #3175 πŸŽ‰ ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.8...4.92.9
4.92.8 - HTTP2 Response Compression/Request Decompression
6 days ago
## What's Changed HTTP2 Response Compression/Request Decompression by @dimitribouniol in #3126 > Fixed an issue where HTTP2 didn’t support response compression and request decompression. > > It seems like it may have been omitted when adding explicit support for HTTP2. Not sure what to do about testing as I couldn’t find any tests for the HTTP1.1 pathway, but I did verify it works in my pet project πŸ˜… > > Fixes #3125 ## New Contributor - @dimitribouniol made their first contribution in #3126 πŸŽ‰ ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.7...4.92.8
4.92.7 - Don't set ignore status for SIGTERM and SIGINT on Linux
1 week ago
## What's Changed Don't set ignore status for SIGTERM and SIGINT on Linux by @gwynne in #3174 > Changes the behavior of `ServeCommand`’s signal handling setup to more closely match that of [swift-service-lifecycle](https://github.com/swift-server/swift-service-lifecycle/blob/main/Sources/UnixSignals/UnixSignalsSequence.swift#L77-L82). Hopefully finally solves #2502 🀞 ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.6...4.92.7
4.92.6 - Fix typos across the codebase
2 weeks ago
## What's Changed Fix typos across the codebase by @mrs1669 in #3162 > Fixes a number of typos in the codebase. > > ⚠️ the logger for loading environment files now has the correctly spelt label - `dot-env-logger` if you need to search for that ## New Contributor - @mrs1669 made their first contribution in #3162 πŸŽ‰ ## Reviewers Thanks to the reviewers for their help: - @dimitribouniol ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.5...4.92.6
4.92.5 - Fix some Sendable warnings on 5.10
5 weeks ago
## What's Changed Fix some Sendable warnings on 5.10 by @sidepelican in #3158 > Fix a number of warnings in Swift 5.10 like below. > > Fix simple issues that can be addressed by simply adding `Sendable`. ## New Contributor - @sidepelican made their first contribution in #3158 πŸŽ‰ ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.4...4.92.5
4.92.4 - Allow `HTTPServer`'s configuration to be dynamically updatable
9 weeks ago
## What's Changed Allow `HTTPServer`'s configuration to be dynamically updatable by @dimitribouniol in #3132 > This allows many aspects of the HTTP server configuration to be changed after the server starts without needing to stop and restart it, or drop existing connections in the process. > > Some things that can now be re-configured include request/response configuration options, HTTP version support, HTTP pipelining, TLS configuration (ie. enabling/disabling, rotating certificates, etc…), server name, metrics reporting, the logger, and the shutdown timer. > > Fixes #3130. ## New Contributor - @dimitribouniol made their first contribution in #3132 πŸŽ‰ ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.3...4.92.4
iOS macOS watchOS tvOS linux macOS iOS
vapor/fluent 4.9.0
Vapor ORM (queries, models, and relations) for NoSQL and SQL databases
⭐️ 1,281
πŸ•“ 15 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.9.0 - Asyncification of Fluent provider
15 weeks ago
## What's Changed Asyncification of Fluent provider by @gwynne in #772 > Updates the Fluent provider package to be (mostly) `Sendable`-correct and switches `MigrateCommand` to being async to avoid dangerous misuse of `EventLoopFuture.wait()`. > > Bumps minimum Swift version to 5.7 (matching Vapor). ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/fluent/compare/4.8.0...4.9.0
Update min Swift version to 5.6 and make platform versions consistent
1 year ago
###### _This patch was authored and released by @gwynne._
Update to match FluentKit's declared version minimums
1 year ago
###### _This patch was authored and released by @gwynne._ This should help fix building in Xcode. Also bumps minimum Swift version to 5.5.2 and removes outdated compiler conditionals on concurrency support, incidentally enabling back-deployment in the process.
Add migrationLogLevel configuration
1 year ago
###### _This patch was authored by @madsodgaard and released by @gwynne._ Adds the possibility to configure the log level for migrations with: ```swift app.fluent.migrationLogLeveL = .debug ```
Update minimum Swift version to 5.5
1 year ago
###### _This patch was authored and released by @gwynne._ Also updates very ancient CI.
Add `asyncCredentialsAuthenticator` to `ModelCredentialsAuthenticatable`
1 year ago
###### _This patch was authored by @fatto and released by @0xTim._ Adds `asyncCredentialsAuthenticator` to `ModelCredentialsAuthenticatable` to allow it to be overridden if needs be
Add support for async/await
2 years ago
###### _This patch was authored and released by @0xTim._ Adds initial support for async/await
Fix conditional Codable conformance
2 years ago
###### _This patch was authored and released by @siemensikkema._ This fixes an issue introduced in https://github.com/vapor/fluent-kit/pull/435 where `Page` does not automatically conform to `Codable` anymore (#730)
Add page size limit
2 years ago
###### _This patch was authored by @pulpn0ir and released by @siemensikkema._ Adds a means to prevent server overloads by limiting the maximum amount of elements returned in a single page. `Application` and `Request` have been extended with setters for page size limits. Set limits using the newly introduced `PageLimit` type. ```swift // Set page size limit for the current request. Default is `nil`, which means no limit. request.fluent.pagination.pageSizeLimit = 3 // Setting the request-level limit to `nil` will cause the application-level limit to be used instead. request.fluent.pagination.pageSizeLimit = nil // Use `.noLimit` if you intend to override a limit set on application level. request.fluent.pagination.pageSizeLimit = .noLimit // Set application-wide page size limit. Default is `nil`, which means no limit. application.fluent.pagination.pageSizeLimit = 3 ``` This PR depends on: https://github.com/vapor/fluent-kit/pull/412
Add cache protocol
3 years ago
###### _This patch was authored and released by @tanner0101._ Add Fluent implementation for Vapor's new cache protocol: https://github.com/vapor/vapor/pull/2558 ```swift app.caches.use(.fluent) // Or with specific database id app.caches.use(.fluent(.foo)) ``` Make sure to add the `CacheEntry` migration (similar to `SessionRecord`). ```swift app.migrations.add(CacheEntry.migration) ```
iOS macOS watchOS tvOS linux macOS iOS
vapor/redis 5.0.0-alpha.2.2
Vapor provider for RediStack
⭐️ 462
πŸ•“ 44 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Correct RediStack URL and match Vapor's minimum Swift version
44 weeks ago
###### _This patch was authored and released by @gwynne._ Switches to the now-official GitHub URL for RediStack and raises the Swift minimum version to 5.6 to match Vapor. (Swift version update requires minor version bump.)
Correct RediStack URL and match Vapor's minimum Swift version
44 weeks ago
###### _This patch was authored and released by @gwynne._ Switches to the now-official GitHub URL for RediStack and raises the Swift minimum version to 5.6 to match Vapor. (Swift version update requires minor version bump.)
4.9.0
45 weeks ago
## What's Changed * Add onUnexpectedConnectionClose by @marius-se in https://github.com/vapor/redis/pull/210 ## New Contributors * @marius-se made their first contribution in https://github.com/vapor/redis/pull/210 **Full Changelog**: https://github.com/vapor/redis/compare/4.8.0...4.9.0
General overdue cleanups
1 year ago
###### _This patch was authored and released by @gwynne._ - Bump Swift minimum to match Vapor - Add platform versions - Update README - Fix imports - Remove old Concurrency conditionals
4.7.0
1 year ago
## What's Changed * Add good first issue project board workflow to repository by @BennyDeBock in https://github.com/vapor/redis/pull/198 * Update good first issue workflow to work for multiple labels by @BennyDeBock in https://github.com/vapor/redis/pull/200 * Update good first issue workflow to work for multiple labels by @BennyDeBock in https://github.com/vapor/redis/pull/202 * Add support for TLS-backed connections to Redis by @iKenndac in https://github.com/vapor/redis/pull/205 ## New Contributors * @BennyDeBock made their first contribution in https://github.com/vapor/redis/pull/198 * @Rubenfer made their first contribution in https://github.com/vapor/redis/pull/204 * @iKenndac made their first contribution in https://github.com/vapor/redis/pull/205 **Full Changelog**: https://github.com/vapor/redis/compare/4.6.0...4.7.0
change Lock to NIOLock
1 year ago
###### _This patch was authored by @Rubenfer and released by @Mordil._ This PR renames Lock to NIOLock as it is deprecated
Redis 5.0.0 Alpha 2
1 year ago
Updates the Alpha branch to use RediStack 2.0.0 Beta See RediStack's releases for more details - [Beta 1](https://gitlab.com/Mordil/RediStack/-/releases/2.0.0-beta.1) ## Major - Significant refactor the `RedisConfiguration` type: it is now a `typealias` of **RediStack**'s `RedisConnectionPool.Configuration` - The same initializers are supported, with new optional arguments for configuring the behavior of the pool.
Redis 5.0.0 Alpha 1.1
1 year ago
> _This release does not contain any new changes, it's just a proper tagging of the initial Alpha release which was improperly tagged._ Initial support for RediStack 2.0.0 and Vapor See RediStack's releases for more details - [Alpha 1](https://gitlab.com/Mordil/RediStack/-/releases/2.0.0-alpha.1) - [Alpha 2](https://gitlab.com/Mordil/RediStack/-/releases/2.0.0-alpha.2) - [Alpha 3](https://gitlab.com/Mordil/RediStack/-/releases/2.0.0-alpha.3) - [Alpha 4](https://gitlab.com/Mordil/RediStack/-/releases/2.0.0-alpha.4)
Redis 5.0.0 Alpha 1
2 years ago
Initial support for RediStack 2.0.0 and Vapor See RediStack's releases for more details - [Alpha 1](https://gitlab.com/Mordil/RediStack/-/releases/2.0.0-alpha.1) - [Alpha 2](https://gitlab.com/Mordil/RediStack/-/releases/2.0.0-alpha.2) - [Alpha 3](https://gitlab.com/Mordil/RediStack/-/releases/2.0.0-alpha.3) - [Alpha 4](https://gitlab.com/Mordil/RediStack/-/releases/2.0.0-alpha.4)
Allow customizing encoding and decoding of RedisCache values
2 years ago
###### _This patch was authored and released by @gwynne._ It is now possible to specify a custom `Encoder` and `Decoder` to use in place of `JSONEncoder` and `JSONDecoder` for storing and retrieving values cached in Redis via the `Cache` interface.
iOS macOS watchOS tvOS linux macOS iOS
vapor/console-kit 4.14.1
πŸ’» APIs for creating interactive CLI tools.
⭐️ 446
πŸ•“ 15 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.14.1 - Revert unnecessary command behavior change
15 weeks ago
## What's Changed Revert unnecessary command behavior change by @gwynne in #197 > In a previous release, a change was made (by me) to how old `Command`s are integrated with `AsyncCommand`s which was unnecessary, offers no tangible benefit, possibly has a (very small) speed penalty, and is one of a small number of potential sources of runtime stalls. This reverts said ill-advised change. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.14.0...4.14.1
4.14.0 - Revise async commands support
20 weeks ago
## What's Changed Revise async commands support by @gwynne in #196 > Changes: > > - Deprecates unnecessary API > - Corrects the sync `Command` adapter methods > - Cleans up some concurrency warnings ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.13.0...4.14.0
4.13.0 - Add merge function to command groups
20 weeks ago
## What's Changed Add merge function to command groups by @marius-se in #195 > Add merge function to `AsyncCommandGroup` and conform `AnyCommand` to `AnyAsyncCommand`. This allows us to get AsyncCommand working again in Vapor 4 πŸŽ‰ ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.12.0...4.13.0
4.12.0 - Split ConsoleKit into two functional targets
21 weeks ago
## What's Changed Split ConsoleKit into two functional targets by @gwynne in #192 > ConsoleKit has been split into two separate targets: > > - `ConsoleKitTerminal` contains the logic for interacting with a console (I/O, color support, other ANSI commands, etc.). > - `ConsoleKitCommands` contains the functionality for handling argument parsing, which is now soft-deprecated in favor of `swift-argument-parser` when possible. > > The existing `ConsoleKit` target is now an umbrella import, similar to the function of the `NIO` target in `swift-nio`; existing code should be unaffected. > > Several additional minor cleanups were also made in the process of this split. ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.11.0...4.12.0
4.11.0 - Add a public initializer to LogRecord
22 weeks ago
## What's Changed Add a public initializer to LogRecord by @semicoleon in #194 > One of the goals of the `LoggerFragment` system was to make it simple to handle more complex logging logic by wrapping a custom log handler around the existing `LoggerFragment` system. > > Unfortunately I forgot to give `LogRecord` a public initializer which makes doing that impossible. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.10.2...4.11.0
4.10.2 - Fix `AnySendableHashable` regression
23 weeks ago
## What's Changed Fix `AnySendableHashable` regression by @0xTim in #193 > `AnySendableHashable` introduced a breaking change where trying to pass concrete types that conform to `Sendable` and `Hashable` but the compiler couldn’t infer they could be passed around as `AnySendableHashable`. This fixes the accesses for any dictionary (including `userInfo`) to fix an API break in https://github.com/vapor/console-kit/releases/tag/4.8.0 ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.10.1...4.10.2
4.10.1 - Elide main queue check in Linux readpassphrase() implementation
24 weeks ago
## What's Changed Elide main queue check in Linux readpassphrase() implementation by @gwynne in #185 > In an `async` world, the check for running on the main queue in `linux_readpassphrase()` is hopelessly wrong. Since it’s a violation of the API contract to call this method from multiple threads, we just remove the bad assertion and let misuse fail out the same way the β€œreal” API would. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.10.0...4.10.1
4.10.0 - Improve AnySendableHashable to match Hashable
24 weeks ago
## What's Changed Improve AnySendableHashable to match Hashable by @0xTim in #191 > Make it better align with the stdlib ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.9.1...4.10.0
4.9.1 - Fix a Sendable warning on Linux
25 weeks ago
## What's Changed Fix a Sendable warning on Linux by @0xTim in #190 > Fixes an issue where `DispatchQueue` and friends are not `Sendable` on Linux so we need to suppress the warning ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.9.0...4.9.1
4.9.0 - Make Commands Sendable
28 weeks ago
## What's Changed Make Commands Sendable by @0xTim in #188 > Makes `Command` and many of the associated types, like `@Flag` and `@Option` `Sendable`. ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.8.1...4.9.0
iOS macOS watchOS tvOS linux macOS iOS
vapor/leaf 4.3.0
πŸƒ An expressive, performant, and extensible templating language built for Swift.
⭐️ 415
πŸ•“ 11 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.3.0 - Bump Package.swift
11 weeks ago
## What's Changed Bump Package.swift by @gwynne in #230 > This package should have gotten a release after the previous update to its `Package.swift`, but it was overlooked. This one further updates the versions and should resolve version issues with the Leaf provider. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/leaf/compare/4.2.4...4.3.0
Fix Algorithms Dependency Declaration
1 year ago
###### _This patch was authored by @dankinsoid and released by @0xTim._ Swift Algorithms was used in Leaf but never explicitly declared as a dependency on the target. That resulted in compiler errors in some scenarios. The dependency is now correctly declared.
Fix retain cycle(s) in encoder implementation
1 year ago
###### _This patch was authored by @petrpavlik and released by @0xTim._ This PR addresses issue https://github.com/vapor/leaf/issues/215 and server as an alternative of PR https://github.com/vapor/leaf/pull/216, that somehow got stuck in it's efforts of being merged in. I've done 2 things to discover the issue and confirm the fix - Xcode would show a bunch of memory leaks when using it's memory graph debugger, those are gone after the changes introduced in this PR - I've switched https://swiftpack.co, which uses leaf heavily, to using my fork with this fix. The heroku graph bellow shows significantly lower memory consumption and does not seem to be crashing, though I still do do seem to have memory leaks somewhere in the codebase. <img width="1223" alt="Screenshot 2022-10-11 at 8 09 09" src="https://user-images.githubusercontent.com/1067678/196025866-b2610ab8-de21-4dba-9add-87b30b2919d6.png"> <img width="1512" alt="Screenshot 2022-10-09 at 18 38 05" src="https://user-images.githubusercontent.com/1067678/196025908-ac231a1f-a87e-4955-9119-e5c94f76403d.png"> <img width="1512" alt="Screenshot 2022-10-09 at 18 35 00" src="https://user-images.githubusercontent.com/1067678/196025912-40c8fe04-0fae-4c71-bf53-602339af9921.png"> <img width="1512" alt="Screenshot 2022-10-09 at 18 36 58" src="https://user-images.githubusercontent.com/1067678/196025915-8ca9b7b3-3b76-42ba-9bf3-8bc0d01a97be.png"> <img width="1512" alt="Screenshot 2022-10-09 at 18 32 46" src="https://user-images.githubusercontent.com/1067678/196025916-58676f06-210c-48eb-b66c-079817cd9df0.png"> <img width="1512" alt="Screenshot 2022-10-09 at 18 35 33" src="https://user-images.githubusercontent.com/1067678/196025917-20870599-1853-4532-96aa-ced9b8a81588.png">
Add Swift Algorithms as an explicit dependency
1 year ago
###### _This patch was authored by @Joannis and released by @0xTim._ Adds Swift Algorithms as an explicit dependency as we depend on it
Fix behavior of Leaf context encoding and improve Leaf errors
1 year ago
###### _This patch was authored and released by @gwynne._ Types which use `superEncoder(forKey:)` in their `Codable` conformance (such as Fluent models) can now safely be provided to Leaf views as context objects. In general, handling of context encoding is significantly improved. `LeafError` now conforms to `AbortError` and `DebuggableError` for improved error UI/UX.
Update Supported Swift Versions
1 year ago
###### _This patch was authored and released by @0xTim._ This removes support for Swift 5.2 and Swift 5.3, making Swift 5.4 the earliest supported version [as announced](https://blog.vapor.codes/posts/vapor-swift-versions-update/)
Add experimental support for iOS
2 years ago
###### _This patch was authored by @BeauNouvelle and released by @0xTim._ This change allows Leaf to be used within iOS environments. Without it we get the following error: `The package product 'Vapor' requires minimum platform version 13.0 for the iOS platform, but this target supports 9.0`
Fix UnkeyedContainer crash for collections with nil
2 years ago
###### _This patch was authored by @fananek and released by @0xTim._ <!-- πŸš€ Thank you for contributing! --> <!-- Describe your changes clearly and use examples if possible. --> UnkeyedContainer throw fatal error in case of encoding collection with one or more nil values. This change removes force unwrap of the input data and skip any nil value in a collection. Resolves #197 <!-- When this PR is merged, the title and body will be --> <!-- used to generate a release automatically. -->
Export `UnsafeUnescapedLeafTag`
2 years ago
###### _This patch was authored and released by @0xTim._ Exports the new `UnsafeUnescapedLeafTag` so it's easy to use for anyone importing Leaf
Remove Starting Renderer with Caching Enabled Log
2 years ago
###### _This patch was authored and released by @0xTim._ This removes the log message that states that the application is starting the Leaf Renderer with caching enabled. Because the `userInfo` is unique per request we can't cache the `renderer` so it needs to be created for each request (which is fine as everything else is stored in the request's storage). However this means that we get the log for each request. Additionally the log might not be true if the application is configured to disable caching. Resolves #192
iOS macOS watchOS tvOS linux macOS iOS
vapor/jwt 5.0.0-beta.3
Vapor JWT provider
⭐️ 311
πŸ•“ Yesterday
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
5.0.0 Beta 3
2 days ago
## What's Changed * Update JWTKit version by @ptoffy in https://github.com/vapor/jwt/pull/154 **Full Changelog**: https://github.com/vapor/jwt/compare/5.0.0-beta.2...5.0.0-beta.3
5.0.0 Beta 2
5 weeks ago
## What's Changed * update CI by @JaapWijnen in https://github.com/vapor/jwt/pull/153 * Update to JWTKit Beta 2 by @ptoffy in https://github.com/vapor/jwt/pull/152 **Full Changelog**: https://github.com/vapor/jwt/compare/5.0.0-beta.1...5.0.0-beta.2
5.0.0 Beta 1
8 weeks ago
First beta release of major version 5.
Add missing platform specifiers
1 year ago
###### _This patch was authored and released by @gwynne._ JWTKit and Vapor both already have the additional platforms.
Add `@discardableResult` attribute to `verify(as:)` functions
1 year ago
###### _This patch was authored by @jiahan-wu and released by @0xTim._ Marks JWT's `verify(as:)` functions with `@discardableResult` so you can verify then without reading the contents in a clean way. For example ```swift let _ = try req.jwt.verify(as: Payload.self) ``` Can become: ```swift try req.jwt.verify(as: Payload.self) ```
Drop support for Swift 5.2 and 5.3
1 year ago
###### _This patch was authored and released by @0xTim._ This removes support for Swift 5.2 and Swift 5.3, making Swift 5.4 the earliest supported version [as announced](https://blog.vapor.codes/posts/vapor-swift-versions-update/)
Add support for `async`/`await`
2 years ago
###### _This patch was authored and released by @0xTim._ Adds `async` APIs for JWT calls when interacting with JWKS servers
JWT 4.0.0
3 years ago
###### _This patch was authored and released by @tanner0101._ Docs: https://docs.vapor.codes/4.0/jwt/ More information on Vapor 4 official release: https://forums.swift.org/t/vapor-4-official-release-begins/34802
Make JWT helpers extendable
3 years ago
###### _This patch was authored and released by @tanner0101._ This change publicizes internal properties on JWT helpers to make them more easily extendable (#131, fixes #125). ```swift // Custom extension extension Request.JWT { // Methods now have access to the request func myVerifier() { print(self._request) // Current request } } // Usage req.jwt.myVerifier() ``` The property names have been prefixed with `_` to prevent autocomplete from suggesting things like: ```swift req.jwt.request ``` ⚠️ Note: `Application.JWT` and `Request.JWT`'s initializers have been removed. These were redundant and can be declared much more concisely: ```diff - Application.JWT(application: app) + app.jwt ``` ```diff - Request.JWT(request: req) + req.jwt ```
Add Microsoft JWT helpers
3 years ago
###### _This patch was authored and released by @tanner0101._ Adds new helper methods for verifying Microsoft JWTs (#130, #121). ```swift // Configure your Microsoft application identifier. app.jwt.microsoft.applicationIdentifier = "..." // Fetch and verify Microsoft identity token from Bearer header. // Microsoft's JWKS is downloaded and cached automatically. req.jwt.microsoft.verify().map { token in print(token) // MicrosoftIdentityToken } ```
iOS macOS watchOS tvOS linux macOS iOS
vapor/postgres-nio 1.21.1
🐘 Non-blocking, event-driven Swift client for PostgreSQL.
⭐️ 281
πŸ•“ 4 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
PostgresNIO 1.21.1
4 weeks ago
### SemVer Patch - Fixes `LISTEN` to quote channel name (#466, patch credit to @NeedleInAJayStack) ### Other Changes - Fix broken link in README.md (#467, patch credit to @jiahan-wu)
PostgresNIO 1.21.0
6 weeks ago
### SemVer Minor - Fix Swift 5.10 warnings (#454) - Fix prepared statements that bind values (#455) - Run queries directly on `PostgresClient` (#456) - `PostgresClient` implements ServiceLifecycle's Service (#457) - Adds prepared statement support to `PostgresClient` (#459) - Make `PostgresClient` API (#460) - Fix multiple array type mapping mistakes and add missing date and time array types (#463) ### SemVer Patch - Fix `reverseChunked(by:)` Method Implementation (#465, patch credit to @jiahan-wu) ### Other Changes - Improve docs (#461) - Package cleanup (#464)
PostgresNIO 1.20.2
12 weeks ago
### SemVer Patch - Be resilient about a read after connection closed (#452)
PostgresNIO 1.20.1
12 weeks ago
### SemVer Patch - Add `Sendable` conformance to `PostgresEncodingContext` (#450) - Fix mishandling of SASL attribute parsing (#451) ### [SPI](https://github.com/apple/swift/blob/main/docs/ReferenceGuides/UnderscoredAttributes.md#_spispiname)(ConnectionPool) changes - Fixes an availability issue for `DiscardingTaskGroup` on watchOS (#448, patch credit to @lovetodream)
PostgresNIO 1.20.0
19 weeks ago
### SemVer Minor - Support additional connection parameters (#361) ### [SPI](https://github.com/apple/swift/blob/main/docs/ReferenceGuides/UnderscoredAttributes.md#_spispiname)(ConnectionPool) changes - Add test cancel connection request (#439) - Add tests to lease multiple connections at once (#440) - Add test to lease connection after shutdown has started (#441) - Add support for multiple streams (#442) - Fix crash in PoolStateMachine+ConnectionGroup when closing connection while keepAlive is running (#444, patch credit to @lovetodream)
PostgresNIO 1.19.1
23 weeks ago
### [SPI](https://github.com/apple/swift/blob/main/docs/ReferenceGuides/UnderscoredAttributes.md#_spispiname)(ConnectionPool) changes - Fixes Crash in ConnectionPoolStateMachine (#438) ### Other Changes - Update README.md (#434)
PostgresNIO 1.19.0
25 weeks ago
What is better than one PostgresConnection? Multiple PostgresConnections! This is why PostgresNIO now features an experimental `PostgresClient` that is backed by a new `ConnectionPool` implementation. The new `PostgresClient` and its underlying `ConnectionPool` implementation are large new features that are in an *early experimental* stage. We encourage PostgresNIO users to try them and provide feedback. The implementation is so new, and the feature scope so large, that we don't make any API stability promises for `PostgresClient` yet; it is therefore exposed as an [SPI] import. If you want to start playing with the new `PostgresClient`, start with a pattern like this: ```swift @_spi(ConnectionPool) import PostgresNIO let client = PostgresClient(configuration: configuration, logger: logger) await withTaskGroup(of: Void.self) { taskGroup.addTask { // 🚨 The PostgresClient only works if its `run()` method is executed in a long-running task. // This ensures that all background work shall be executed in a way that plays // nicely with structured concurrency. client.run() } taskGroup.addTask { client.withConnection { connection in do { let rows = try await connection.query("SELECT userID, name, age FROM users;") for try await (userID, name, age) in rows.decode((UUID, String, Int).self) { // do something with the values } } catch { // handle errors } } } } ``` We are currently working with the [`ServiceLifecycle`][cycle] maintainers to enable simple integration (however, we do not intend to depend on `ServiceLifecycle` directly). If you run into any problems, please [open a new Issue][issue]. ### [SPI][SPI](ConnectionPool) changes - Add new `ConnectionPoolModule`, `PostgresClient` (#412, #416, #417, #418, #419, #420, #421, #422, #424, #425, #426, #427, #428, #429, #430) ### SemVer Minor - Fix `PostgresDecodable` inference for `RawRepresentable` enums (#423, patch credit to @MahdiBM) - Remove warn-concurrency warnings (#408) - Update minimum Swift requirement to 5.7 (#414) ### Other Changes - Update SSWG Graduation Level (#409) [SPI]: https://github.com/apple/swift/blob/main/docs/ReferenceGuides/UnderscoredAttributes.md#_spispiname [cycle]: https://github.com/swift-server/swift-service-lifecycle [issue]: https://github.com/vapor/postgres-nio/issues/new/choose
PostgresNIO 1.18.1
34 weeks ago
PostgresNIO `1.18.0` introduced an issue that could lead to Segmentation faults when using the Swift 5.8 compiler. This patch works around the underlying Swift compiler bug. ### SemVer Patch - Fix Segmentation faults in Swift 5.8 (#406) ### Other Changes - Improve the logo image used by the DocC catalog (#404)
PostgresNIO 1.18.0
34 weeks ago
πŸš€ This PostgresNIO release adds a number of changes that allow users to fully embrace structured concurrency: 1. Prepared statement async/await support 2. Notification listen async/await support 3. Users don't need to provide EventLoops when creating a connection 🚨 This release changes the behavior of `PostgresConnection.close()`. Before this release a call to `close()` triggered a graceful shutdown of the connection. This means that all previously enqueued queries got executed before the connection was closed. Starting with `1.18.0` `close()` leads to a direct connection closure cancelling the running and all queued queries. This change is necessary to get rid of connections to servers where the server stopped responding. The previous behavior can be achieved using the new `closeGracefully()` function on PostgresConnection. ### SemVer Minor - Add async listen; Refactor all listen code (#264, #392) - Add `PostgresDynamicTypeThrowingEncodable` and `PostgresDynamicTypeEncodable` (#365, patch credit to @marius-se) - Use `EventLoop` provided by SwiftNIO's `MultiThreadedEventLoopGroup.singleton` (#389, patch credit to @tkrajacic) - `async`/`await` prepared statement API (#390, patch credit to @mariosangiorgio) - `close()` closes immediately; Add new `closeGracefully()` (#383, #397, #400) ### SemVer Patch - Use variadic generics in Swift 5.9 (#341) - Crash fix: Multiple bad messages could trigger reentrancy issue (#379) - Move `PostgresFrontendMessage` to tests (#381, #395, #399) - `PostgresBackendMessage.ID` should be backed by UInt8 directly (#386) - Remove `PrepareStatementStateMachine` (#391) - Fix a few inaccurate or confusing precondition failure messages (#398) ### Other Changes - Fix multiple warnings generated by the documentation build (#378) - Typo: Storiage -> Storage (#387) - Use README header image compatible with light/dark mode (#393)
PostgresNIO 1.17.0
40 weeks ago
### SemVer Minor * Ensure `PostgresConnection.Configuration.TLS` is concurrency safe by making property `disable` computed (#376, patch credit to @sidepelican) ### New Contributors * @sidepelican made their first contribution in https://github.com/vapor/postgres-nio/pull/376
iOS macOS watchOS tvOS linux macOS iOS
vapor/toolbox 18.7.5
Simplifies common command line tasks when using Vapor
⭐️ 277
πŸ•“ 7 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
18.7.5 - Use the new updated Mustache package from vapor-community
7 weeks ago
## What's Changed Use the new updated Mustache package from vapor-community by @gwynne in #451 > This fixes building the toolbox on Arch Linux and uses a much newer version of the `mustach` parser for good measure. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/toolbox/compare/18.7.4...18.7.5
18.7.4 - Change commit message in new project generation.
28 weeks ago
## What's Changed Change commit message in new project generation. by @wieczorek1990 in #418 > Hello, > > I am changing the commit message β€œfirst commit” to β€œGenerate Vapor project.” > Proper commit messages are important in Git. ## New Contributor - @wieczorek1990 made their first contribution in #418 πŸŽ‰ ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/toolbox/compare/18.7.3...18.7.4
18.7.3 - Work around some CI issues
28 weeks ago
This release is a fake, and is exactly identical to [18.7.2](https://github.com/vpaor/toolbox/releases/tag/18.7.2); it's just here to convince the CI to run properly. **Full Changelog**: https://github.com/vapor/toolbox/compare/18.7.1...18.7.2
18.7.2 - Bump the dependencies group with 1 update
28 weeks ago
## What's Changed Bump the dependencies group with 1 update by @dependabot[bot] in #419 > Bumps the dependencies group with 1 update: [github.com/jpsim/yams](https://github.com/jpsim/Yams). > > Dependabot will resolve any conflicts with this PR as long as you don’t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. > > ----- > > You can trigger Dependabot actions by commenting on this PR: > > - `@dependabot rebase` will rebase this PR > - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it > - `@dependabot merge` will merge this PR after your CI passes on it > - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it > - `@dependabot cancel merge` will cancel a previously requested merge and block automerging > - `@dependabot reopen` will reopen this PR if it is closed > - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually > - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/toolbox/compare/18.7.1...18.7.2
Backport support for Swift 5.5
51 weeks ago
###### _This patch was authored and released by @0xTim._ We need to support 5.5 for Homebrew
Update Toolbox for new Templates
51 weeks ago
###### _This patch was authored and released by @0xTim._ * Bumps the minimum required Swift version to 5.6 to match SwiftNIO * Adds deprecation warnings to all the old commands * Handle the new Vapor templates with a different executable name (you should still use `swift run` anyway)
Add support for Package.resolved v2
1 year ago
###### _This patch was authored by @Kyle-Ye and released by @0xTim._ - Add Package.resolved v2 decoding support - Align PackageResolvedV1 definition with [swift-package-manager](https://github.com/apple/swift-package-manager)
Fix Package.resolved version decoding issue
1 year ago
###### _This patch was authored by @Kyle-Ye and released by @0xTim._ Fixes issue when trying to decode V2 Package.resolved files
18.5.1
1 year ago
Fixes a typo in the message when creating a new project
18.5.0
1 year ago
## What's Changed * Give a generic message to open the project by @ahmdyasser in https://github.com/vapor/toolbox/pull/391 * Compatibility with official swift container images by @Jeffrey-de-Bruijn in https://github.com/vapor/toolbox/pull/390 * Use new API for build script by @jroya1 in https://github.com/vapor/toolbox/pull/394 * Update Supported Swift Versions by @0xTim in https://github.com/vapor/toolbox/pull/395 ## New Contributors * @ahmdyasser made their first contribution in https://github.com/vapor/toolbox/pull/391 * @Jeffrey-de-Bruijn made their first contribution in https://github.com/vapor/toolbox/pull/390 * @jroya1 made their first contribution in https://github.com/vapor/toolbox/pull/394 **Full Changelog**: https://github.com/vapor/toolbox/compare/18.4.1...18.5.0
macOS linux macOS iOS
vapor/websocket-kit 2.15.0
WebSocket client library built on SwiftNIO
⭐️ 264
πŸ•“ 5 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
2.15.0 - Allow `send(_ binary:)` to accept `some DataProtocol`
5 weeks ago
## What's Changed Allow `send(_ binary:)` to accept `some DataProtocol` by @fizker in #146 > This allows for passing in `Data` or `ByteBufferView` to `send(_:)`, as well as the currently-supported `[UInt8]` type. ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/websocket-kit/compare/2.14.0...2.15.0
Pass a copy of the control frame buffer to ping/pong callbacks
47 weeks ago
###### _This patch was authored by @tkrajacic and released by @0xTim._ This PR enables access to the data in the control frames handled via `onPing`/`onPong` via a new API with the existing `onPing` and `onPong` methods being deprecated.
Bump the swift-tools-version to 5.7
48 weeks ago
###### _This patch was authored by @Joannis and released by @0xTim._ Set the minimum supported Swift version to 5.7. This is due to the usage of `@preconcurrency`
Revert Sendable Take 2
48 weeks ago
Reverts 2.12.0, in order to maintain compatibility with Swift 5.6 users.
Sendable Take 2
48 weeks ago
###### _This patch was authored and released by @0xTim._ Adds `Sendable` annotations where possible. This time we're using `@preconcurrency` to suppress errors in unsafe code from downstream users
Revert "Add Sendable conformances to WebsocketKit (#131)"
48 weeks ago
###### _This patch was authored and released by @gwynne._ Due to unforeseen source compatibility breakage, this backs out the changes from release 2.10.0 for now.
Add Sendable conformances to WebsocketKit
48 weeks ago
###### _This patch was authored and released by @0xTim._ Bump minimum Swift version to 5.6 and add Sendable conformances where appropriate
Work around apple/swift#66099
48 weeks ago
###### _This patch was authored and released by @gwynne._ Avoids hitting apple/swift#66099. Holding off on reenabling TSan in CI for now due to remaining warnings about race conditions managing callbacks.
Update for new NIOSSL
49 weeks ago
###### _This patch was authored and released by @gwynne._ Fix for [SwiftNIOSSL 2.23.1](https://github.com/apple/swift-nio-ssl/releases/tag/2.23.1) breaking the build of the WebSocket tests due to `EVP_PKEY` no longer being visible. Shoutout and thanks to @jhoughjr for reporting the problem! Additional changes: - Require Swift 5.6 (matching the rest of Vapor) - Update CI (wouldn't be an @gwynne PR without CI tweaks!) - Enable Concurrency back-deployment - Normalize platform support - Some very minor code quality cleanups - Added several missing tests (binary frames, manual pings, automatic pings, various connect methods)
Add support for proxying in `WebsocketClient`
1 year ago
###### _This patch was authored by @rnro and released by @0xTim._ Added support for TLS and plain text proxying of Websocket traffic. * In the TLS case a `CONNECT` header is first sent establishing the proxied traffic. * In the plain text case the modified URI in the initial upgrade request header indicates to the proxy server that the traffic is to be proxied. * Use `NIOWebSocketFrameAggregator` to handle aggregating frame fragments. This brings with it more protections e.g. against memory exhaustion. * Accompanying config has been added to support this change. This change also includes some performance gains by reducing the allocation and copies necessary to send `ByteBuffer` and `ByteBufferView` through `WebSocket.send`. * Sending `ByteBuffer` or `ByteBufferView` doesn’t require any allocation or copy of the data. Sending a `String` now correctly pre allocates the `ByteBuffer` if multibyte characters are present in the `String`. * Remove custom random websocket mask generation which would only generate bytes between `UInt8.min..<UInt8.max`, therefore excluding `UInt8.max` i.e. `255`.
iOS macOS watchOS tvOS linux macOS iOS
vapor/http 3.4.0
πŸš€ Non-blocking, event-driven HTTP built on Swift NIO.
⭐️ 239
πŸ•“ 2 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
SameSite Attribute support none, default = lax
3 years ago
Adds the none attribute to SameSite cookies (#376). This resolves vapor/vapor#375. ⚠️ This contains an additional case in a public enum which may cause a breaking change if you're switching on it
HTTP 3.3.2
4 years ago
Swift NIO vulnerability fix: https://forums.swift.org/t/swiftnio-security-releases-2-13-1-and-1-14-2/33671
HTTP 3.2.1
4 years ago
Fixed: - `HTTPClient` no longer overrides `User-Agent` and `Host` headers. (#365)
HTTP 3.2.0
5 years ago
New: - Publicize `HTTPMessageDecoder.decode` extension. (#359) - Added support for decoding `jsonAPI` media type. (#359)
HTTP 3.1.11
5 years ago
Fixed: - Silenced a Swift 5 warning. (#351)
HTTP 3.1.10
5 years ago
Fixed: - Fixed an issue that could cause unnecessary re-allocations during large file uploads. (#346)
HTTP 3.1.9
5 years ago
Fixed: - Fixed a bug that could cause cookies to be duplicated if added one-by-one. (#343)
HTTP 3.1.8
5 years ago
Fixed: - HTTP upgrade requests now forward bytes buffered during upgrade. (#324)
HTTP 3.1.7
5 years ago
Fixed: - `HTTPScheme.https` now enables certificate verification by default. (#328) Note: This may cause `HTTPClient` to fail with `NIOOpenSSLError.unableToValidateCertificate` if the remote you are connecting to does not have a verifiable certificate. To work around this, use the new `HTTPScheme.customHTTPS(_:)` method. ```swift let res = try HTTPClient.connect( scheme: .customHTTPS(.forClient(certificateVerification: .none)), hostname: "127.0.0.1" ).send(req).wait() ``` - `HTTPScheme.https` now configures SNI. (#314)
HTTP 3.1.6
5 years ago
Fixed: - Improved `HTTPProtocolUpgrader`'s error handling (leaking promise assertion). (#316, #315)
linux macOS iOS
vapor/mysql-kit 4.7.2
🐬 Pure Swift MySQL client built on non-blocking, event-driven sockets.
⭐️ 219
πŸ•“ 16 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.7.2 - Bump swift-crypto version range
16 weeks ago
## What's Changed Bump swift-crypto version range by @scottkawai in #323 > Bump swift-crypto version range to `1.0.0 ..< 4.0.0` since the current version is 3.1.0. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/mysql-kit/compare/4.7.1...4.7.2
4.7.1 - Add MySQL support for nested subpath (JSON) expressions
41 weeks ago
###### _This patch was authored and released by @gwynne._ Implements SQLKit's new `SQLDialect.nestedSubpathExpression(in:for:)` method. https://github.com/vapor/mysql-kit/pull/321
Update min Swift version to 5.6 and make platform versions consistent
1 year ago
###### _This patch was authored and released by @gwynne._
Add `hostname` to `MySQLConnection.connect()`
1 year ago
###### _This patch was authored by @programVeins and released by @gwynne._ <!-- πŸš€ Thank you for contributing! --> <!-- Describe your changes clearly and use examples if possible. --> Prior to this, hostname in `MySQLConnection.connect()` was optional and defaulted to nil. This resulted in an error where upon entering url for connection string, apple's swift-nio-ssl threw: `NIOSSLExtraError.failedToValidateHostname: Couldn't find <none> in certificate from peer` By adding hostname from user given configuration, this is fixed. Fixes #311
Fix bug in hex encoding of normalized constraint hashes
1 year ago
###### _This patch was authored and released by @gwynne._ #314 included a new routine for hex-formatting the hash used for constraint name normalization. This PR fixes a bug in that routine which caused the 4th bit of every byte to be ignored when formatting.
Drop support for Swift 5.4
1 year ago
###### _This patch was authored and released by @gwynne._ Also includes: - Another round of CI improvements - A huge speed boost for `MySQLDialect.normalizeSQLConstraint(identifier:)` (converting the hash result to hexadecimal no longer relies on the use of printf formatting)
Revise MySQLDataEncoder implementation to better handle various Codable conformances
1 year ago
###### _This patch was authored and released by @gwynne._ This avoids possible incorrect/corrupted output for various legal Encodable uses.
Add locking clause syntax to dialect
1 year ago
###### _This patch was authored and released by @gwynne._ Leverages the new functionality in vapor/sql-kit#154 to provide the correct syntax for both shared and exclusive locking clauses in MySQL.
Allow `MySQLConfiguration` to be updated
1 year ago
###### _This patch was authored by @lodenrogue and released by @0xTim._ Addresses issue: https://github.com/vapor/fluent-mysql-driver/issues/211 This allows the `MySQLConfiguration` to be edited after it has been instantiated, for example setting a `TLSConfiguration`
Fix SwiftCrypto version pin
2 years ago
###### _This patch was authored and released by @gwynne._ This solves users of Fluent's MySQL driver getting silently stuck on version 1.1.6 of `swift-crypto` (the current, source-compatible version is 2.0.3). It would be far preferable to replace the usage of `Insecure.SHA1` in `MySQLDialect` with something better suited to the purpose and thus drop the Crypto dependency in MySQLKit altogether, but we can't do that without breaking migrations in existing databases. Due to the change in dependency version requirement, this is `semver-minor`.
iOS macOS watchOS tvOS linux macOS iOS
vapor/sql-kit 3.29.2
*️⃣ Build SQL queries in Swift. Extensible, protocol-based design that supports DQL, DML, and DDL.
⭐️ 218
πŸ•“ 1 week ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
3.29.2 - Fix overhaul breakage, part 2
1 week ago
## What's Changed Fix overhaul breakage, part 2 by @gwynne in #176 > This solves the source code breakage issue first reported in #175 - shout out and thanks to @NeedleInAJayStack for reporting the problem! > > Several preexisting APIs had incorrectly changed from accepting `any Encodable` to accepting `some Encodable`, which is source-breaking under some conditions. This restores the original use of `any` (though it keeps the added `Sendable` requirement). > > Also restores 100% test coverage after the previous fixes. > > > [!NOTE] > > Many APIs which had previously accepted a generic parameter (i.e. `<E: Encodable>`), most notably in `SQLPredicateBuilder`, also switched to using `some Encodable`, but this was not source-breaking; the problem applied only to APIs which originally accepted `any Encodable`. > > > > Although the changes in this PR are technically themselves source-breaking, since they revert a previous such breakage to its previous state, only a `semver-patch` bump is necessary. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sql-kit/compare/3.29.1...3.29.2
3.29.1 - Fix downstream breakage issues
1 week ago
Fixes some issues that broke building against FluentKit when not using any of the driver packages. Also adds CI to test this scenario.
3.29.0 - Major overhaul of the entire SQLKit package
1 week ago
This is expected to be the last release of SQLKit version 3. A hopefully complete (but probably not) list of significant changes: - A massive sweep to add at least minimal documentation to everything in the package. - 100% test coverage. - Reorganized the source code layout - Require Swift 5.8 - Package is now `ExistentialAny`-compliant - Numerous poorly-designed APIs have been deprecated. Replacement suggestions are available in all cases. - 100% `Sendable`-complaint (zero concurrency warnings). - `SQLDatabaseReportedVersion` is now `Equatable` and `Comparable`, as it ought to have been from the start. - Efficiency improvements for the `async` versions of various APIs. - `SQLQueryEncoder` and `SQLRowDecoder` have been massively overhauled; both are now considerably more flexible and less restrictive. - `SQLBenchmark` is now `async`. - Numerous ugly `assert()`s and `print()`s are now consistently routed through the database's logger instead, and less noisy logging is done. - Several bits of missing functionality in `SQLCreateTrigger` are now correctly implemented. - `SQLIdentifier` and `SQLLiteral.string` now automatically escape the appropriate quote characters when serializing. - Added `SQLBetween` (`x BETWEEN y AND z`), `SQLQualifiedTable` (`schema.table`), `SQLSubquery` and `SQLSubqueryBuilder`, `SQLUnqualifiedColumnListBuilder`, and `SQLAliasedColumnListBuilder`. - `SQLPredicateBuilder` and `SQLSecondaryPredicateBuilder` now provide 1-to-1 corresponding APIs for all four variants ("and where", "and having", "or where", "or having"). - Serialization of expressions is now a bit faster across the board. - `SQLInsert` and `SQLInsertBuilder` now support the `INSERT ... SELECT` syntax. - `SQLQueryFetcher` gained a number of convenience APIs for decoding models and single columns. Several builders also gained convenience methods for encoding or decoding of models. (Note that "models" in this usage does _NOT_ refer to Fluent's `Model` protocol, but rather to any `Codable` structure.) - `SQLDropBehavior` is now used by all builders that support the modifier and respects the current dialect properly. - `SQLCreateIndex` now supports index predicates. - `SQLDistinct` now serializes correctly. - Several expressions and queries are now more tolerant of missing configuration when serialized. - `SQLDatabase` gained a `withSession(_:)` API which, when implemented correctly by drivers, allows implementing transactions safely using pure SQLKit (no need for Fluent-level or driver-level intervention). - `SQLColumnConstraintAlgorithm.primaryKey` no longer emits incorrect SQL if the active dialect uses `NULL` as its `DEFAULT` literal.
3.28.0 - Add support for nested subpath (JSON) expressions
41 weeks ago
###### _This patch was authored and released by @gwynne._ Adds a new (defaulted) `SQLDialect` method for correctly generating JSON subpath syntax on a per-dialect basis. Add `SQLNestedSubpathExpression` to enable actually invoking the method.
Major codebase cleanup
50 weeks ago
###### _This patch was authored and released by @gwynne._ A massive pass across the entirety of SQLKit, doing the following: - Fix, correct, clarify, add, and streamline documentation comments across the board. - Use `any` in all places it should appear. - Normalize coding style (esp. omitting unneeded `return`s and consistent use of `self.`). - Add `@inlinable` and `@usableFromInline` to a significant amount of the API, hopefully improving performance. - Fix some minor copy-pasta bugs, mostly in `SQLCreateTrigger`. - Deprecate use of non-trivial raw SQL strings outside of `SQLQueryString` or `SQLRaw`.
Add support for specifying a query logging level at the SQLKit layer
50 weeks ago
###### _This patch was authored and released by @gwynne._ Add `SQLDatabase.queryLogLevel` protocol requirement, defaulting to `.debug` for databases which don't implement it. Each individual driver must implement support for this logging. This corresponds to the `sqlLogLevel` configuration in [FluentPostgresDriver](https://github.com/vapor/fluent-postgres-driver) and is the first step in normalizing support for it at the `PostgresKit`/`MySQLKit`/`SQLiteKit` layer.
Update min Swift version to 5.6 and make platform versions consistent
1 year ago
###### _This patch was authored and released by @gwynne._
Make SQLList's properties mutable
1 year ago
###### _This patch was authored and released by @gwynne._ Improves consistency with other SQLKit types (and is incidentally convenient for Fluent).
Support += operator for SQLQueryString.
1 year ago
###### _This patch was authored by @maciejtrybilo and released by @gwynne._ Very simple change to support the += operator for appending SQLQueryStrings.
Bump minimum Swift version to 5.5
1 year ago
###### _This patch was authored and released by @gwynne._ Also syncs up CI with the latest refinements.
iOS macOS watchOS tvOS linux macOS iOS
vapor/fluent-kit 1.47.3
Swift ORM (queries, models, and relations) for NoSQL and SQL databases
⭐️ 197
πŸ•“ 1 week ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
1.47.3 - Fix up FluentKit tests after SQLKit update
1 week ago
## What's Changed Fix up FluentKit tests after SQLKit update by @gwynne in #599 > Also bumps Swift minimum to 5.7 and adds `ExistentialAny` compliance. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/fluent-kit/compare/1.47.2...1.47.3
1.47.2 - Skip DB execution when all ids for @OptionalParent are nil
4 weeks ago
## What's Changed Skip DB execution when all ids for @OptionalParent are nil by @mtj0928 in #583 > `OptionalParentEagerLoader` doesn’t need to fetch `To` objects when all ids of the given models are `nil`, because the results of the DB execution will always be empty. > > Therefore, I’ve modified the logic to skip the DB execution in such cases to improve performance. ## New Contributor - @mtj0928 made their first contribution in #583 πŸŽ‰ ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/fluent-kit/compare/1.47.1...1.47.2
1.47.1 - Explicitly set all columns when creating arrays of models
9 weeks ago
## What's Changed Explicitly set all columns when creating arrays of models by @gwynne in #595 > When performing an insert query (the β€œcreate” model action), we now explicitly emit `DEFAULT` as the value for fields which have not been set. This ensures that when creating an array of models, the column count for each individual model is the same even if not all fields are set on each one, avoiding a fatal error. > > Fixes #594. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/fluent-kit/compare/1.47.0...1.47.1
1.47.0 - Relax restrictions on ModelAlias use and join conditions
12 weeks ago
## What's Changed Relax restrictions on ModelAlias use and join conditions by @gwynne in #593 > 1. Relaxes most of Fluent’s filter operators to only require `Schema` conformance rather than `Model`. This enables `ModelAlias` usage with all operators that it previously didn’t work for. > 1. Enables all model value filters in joins (e.g. `join(Foo.self, on: \Foo.$bar.$id == \Bar.$id && \Bar.$value > 4)`). > 1. Adds `.sql(raw:)`, `.sql(embed:)`, and `.sql(_:)` for Fluent joins. > > (Note: Not a semver-major break because the new generic requirements on operators are always strict supersets of the old ones.) > > Supersedes #432. Fixes #431. Fixes #536. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/fluent-kit/compare/1.46.0...1.47.0
1.46.0 - Add `@discardableResult` to QueryBuilder's range and sort methods
12 weeks ago
## What's Changed Add `@discardableResult` to QueryBuilder's range and sort methods by @jiahan-wu in #592 > This Pull Request addresses an issue where calling the sort methods in the QueryBuilder class would result in a β€œResult of call to β€˜sort’ is unused” warning. To resolve this, I have added the @discardableResult attribute to these methods, allowing users to call them without triggering the warning when the result is not explicitly used. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/fluent-kit/compare/1.45.1...1.46.0
1.45.1 - Make DatabaseID Sendable
15 weeks ago
## What's Changed Make DatabaseID Sendable by @adam-fowler in #590 > Add Sendable conformance to `DatabaseID`. > > Make DatabaseID Sendable ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/fluent-kit/compare/1.45.0...1.45.1
1.45.0 - Allow pivot editing closures to be async and throwing.
31 weeks ago
## What's Changed Allow pivot editing closures to be async and throwing. by @gwynne in #585 > When using the `attach(_:method:on:_:)` and `attach(_:on:_:)` methods of `SiblingsProperty`, the optional closure provided to allow editing new pivots before they are saved can now optionally be both `throws` and `async`. > > Closes #581. > > Additional changes: > > - All versions of the `isAttached()`, `attach()`, and `detach()` methods of `SiblingsProperty` will now throw errors (specifically cases of the new `SiblingsPropertyError` enum) instead of calling `fatalError()` when an unsaved model is encountered. ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/fluent-kit/compare/1.44.1...1.45.0
1.44.1 - Correctly handle @OptionalEnum properties when using ~~ and != in filter()
36 weeks ago
## What's Changed Correctly handle @OptionalEnum properties when using ~~ and != in filter() by @gwynne in #580 > We were incorrectly hardcoding the use of `.bind` query values when using the `~~` (contains) and `!~` (not contains) operators with properties having optional values in Fluent `filter()` expressions. This appears to be the only place where this was still happening. ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/fluent-kit/compare/1.44.0...1.44.1
1.44.0 - Fully work around MySQL 5.7's lack of the DROP CONSTRAINT statement
38 weeks ago
## What's Changed Fully work around MySQL 5.7's lack of the DROP CONSTRAINT statement in #575 > The work done in vapor/fluent-kit#522 added the ability to drop foreign keys when using a MySQL 5.7 database by enabling Fluent to generate the necessary `DROP FOREIGN KEY` syntax to make up for the old version's lack of the more standard and more flexible `DROP CONSTRAINT` statement. > > However, this still required users to specify the complete and current foreign key constraint definition at the time of deletion so Fluent could work out the correct "normalized" constraint identifier. These changes make it possible to also drop a foreign key constraint by _name_, requiring only the knowledge that it is, in fact, a foreign key. > > Users wishing to drop foreign key constraints by name when using MySQL 5.7 must use the new API provided. Users of other versions of MySQL and other databases may also use the new API, or continue to use the old one. > > New APIs added in this release: > > - [`FluentKit.DatabaseSchema.DeleteConstraint.namedForeignKey(_:)`](https://api.vapor.codes/fluentkit/documentation/fluentkit/databaseschema/constraintdelete/namedforeignkey(_:)): Specify a constraint deletion operation using a name and the explicit indication that the constraint to drop is a foreign key. > - [`FluentKit.SchemaBuilder.deleteForeignKey(name:)`](https://api.vapor.codes/fluentkit/documentation/fluentkit/schemabuilder/deleteforeignkey(name:)): Add a constraint deletion for a foreign key with the given name to a schema builder invocation. Identical to `deleteConstraint(name:)` except on MySQL 5.7. > > Fixes #491, vapor/fluent#722. Supersedes #492, #522. > ###### _This patch was released by @gwynne._ **Full Changelog**: https://github.com/vapor/fluent-kit/compare/1.43.2...1.44.0
1.43.2 - Add possibility of nested eager load builder to throw
39 weeks ago
## What's Changed Add possibility of nested eager load builder to throw by @Frizlab in #574 > This PR adds the possibility of throwing inside the block that adds nested eager loaders. > I need this because I add eager loading as needed depending on fields (user input), recursively, and I don’t know before it’s too late whether my fields are valid. > > As the `with` functions that are modified are marked as `rethrows`, this should have no impact on existing code and should not require a major version bump. ###### _This patch was released by @gwynne._ **Full Changelog**: https://github.com/vapor/fluent-kit/compare/1.43.1...1.43.2
iOS macOS watchOS tvOS linux macOS iOS
vapor/postgres-kit 2.13.1
🐘 Non-blocking, event-driven Swift client for PostgreSQL.
⭐️ 178
πŸ•“ 3 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
2.13.1 - Add missing Sendable annotations
3 weeks ago
## What's Changed Add missing Sendable annotations by @gwynne in #260 > Adds two `Sendable` annotations that were missed in the previous update. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/postgres-kit/compare/2.13.0...2.13.1
2.13.0 - Apply updates for improved interop with SQLKit
4 weeks ago
## What's Changed Apply updates for improved interop with SQLKit by @gwynne in #259 > These changes bump the minimum Swift version to 5.8 and prepare PostgresKit for [SQLKit’s overhaul PR](https://github.com/vapor/sql-kit/pull/172). The SQLKit changes are *NOT* required by this update. ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/postgres-kit/compare/2.12.3...2.13.0
2.12.3 - Fix mishandling of URL
12 weeks ago
## What's Changed Fix mishandling of URL by @gwynne in #257 > We have for some time now been incorrectly encoding `URL`s in an incorrect format that fails to trivially round-trip back through decoding. This is now fixed. Any previously broken data stored in a database affected by this issue will now be correctly read back and will have the correct format when next written. > > > [!NOTE] > > This is ***not*** related in any way to the recent issues with Vapor’s `URI` type; it is a separate concern affecting the `URL` type that comes from Foundation. > > Also incidentally fixes #255 ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/postgres-kit/compare/2.12.2...2.12.3
2.12.2 - Enable libpq-compatible "postgresql" URL schemes
36 weeks ago
## What's Changed Enable libpq-compatible "postgresql" URL schemes by @gwynne in #251 > For [libpq compatibility](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING), the following additional schemes are now accepted in database URLs: > > - `"postgresql"` > - `"postgresql+tcp"` > - `"postgresql+uds"` ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/postgres-kit/compare/2.12.1...2.12.2
2.12.1 - Remove use of legacy codepath when establishing Postgres connections
37 weeks ago
## What's Changed Remove use of legacy codepath when establishing Postgres connections by @gwynne in #249 > Also tidies CI as usual. ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/postgres-kit/compare/2.12.0...2.12.1
2.12.0 - Support the sslmode URL query parameter and UDS URLs
39 weeks ago
## What's Changed Support the sslmode URL query parameter and UDS URLs by @gwynne in #248 > Overhauls the URL parser for connection configurations to accept considerably more flexible syntax. See [the documentation](https://api.vapor.codes/postgreskit/documentation/postgreskit/sqlpostgresconfiguration/init(url:)-5s5mo/) for details of the new syntax. (A screenshot of the new documentation is included below in case the website doesn’t update immediately.) ## Reviewers Thanks to the reviewers for their help: - @0xTim ###### _This patch was released by @gwynne._ **Full Changelog**: https://github.com/vapor/postgres-kit/compare/2.11.4...2.12.0
2.11.4 - Add Postgres support for nested subpath (JSON) expressions
41 weeks ago
###### _This patch was authored and released by @gwynne._ Implements SQLKit's new `SQLDialect.nestedSubpathExpression(in:for:)` method. https://github.com/vapor/postgres-kit/pull/246
Remove the temporary workaround for PSQLError descriptions
46 weeks ago
###### _This patch was authored and released by @gwynne._ The workaround didn't work very well anyway (I got it slightly wrong), and thanks to vapor/postgres-nio#372 is no longer needed at all. This reverts #244, commit 875e8c191ea776802fddf6773146349803629754.
Temporary bandaid workaround for lack of PSQLError usefulness
49 weeks ago
###### _This patch was authored and released by @gwynne._ This is a temporary workaround while waiting for vapor/postgres-nio#360 to be finished.
Add workaround for decoding `NUMERIC` as `Double`
50 weeks ago
###### _This patch was authored and released by @gwynne._ The `PostgresData` implementation allowed this, and it's a halfway reasonable code path, so support it at the driver level.
iOS macOS watchOS tvOS linux macOS iOS
vapor/jwt-kit 5.0.0-beta.3
πŸ”‘ JSON Web Token (JWT) signing and verification (HMAC, ECDSA, EdDSA, RSA, PSS) with support for JWS and JWK
⭐️ 161
πŸ•“ Yesterday
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
5.0.0 Beta 3
2 days ago
## What's Changed * Change to non-optional function String <-> Data by @zunda-pixel in https://github.com/vapor/jwt-kit/pull/156 * Add initialisers to vendor identity tokens by @ptoffy in https://github.com/vapor/jwt-kit/pull/150 * 🚨Update verify function parameter to use some JWTAlgorithm by @ptoffy in https://github.com/vapor/jwt-kit/pull/152 * 🚨Generic key addition by @ptoffy in https://github.com/vapor/jwt-kit/pull/160 * 🚨Make JWTError Sendable by @ptoffy in https://github.com/vapor/jwt-kit/pull/162 * 🚨Update swift version and readme for beta 3 by @ptoffy https://github.com/vapor/jwt-kit/pull/164 ## Breaking Changes * The minimum supported Swift version is now 5.10 * All algorithm specific key addition functions of `JWTKeyCollection` have been updated to be algorithm agnostic, for example the `JWTKeyCollection.addHS256(key: ...)` has been renamed to `JWTKeyCollection.addHMAC(key: ..., digestAlgorithm: .sha256)` etc. * The `JWTPayload`'s `verify` function now takes `some JWTAlgorithm` instead of `any JWTAlgorithm` * `JWTError.malformedToken` was removed in favour of `JWTError.malformedToken(reason:)` **Full Changelog**: https://github.com/vapor/jwt-kit/compare/5.0.0-beta.2...5.0.0-beta.3
4.13.4 - Fix RSA memory leak, take 2
1 week ago
## What's Changed Don't allocate new RSA keys when signing by @gwynne in #161 ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/jwt-kit/compare/4.13.3...4.13.4
4.13.3 - Fix RSA memory leak
1 week ago
## What's Changed Deinitialise correct pointer by @ptoffy in #158 > This aims to fix the memory leak reported in #157 ###### _This patch was released by @ptoffy_ **Full Changelog**: https://github.com/vapor/jwt-kit/compare/4.13.2...4.13.3
5.0.0 Beta 2
5 weeks ago
## What's Changed * Update CI by @ptoffy in https://github.com/vapor/jwt-kit/pull/146 * Add `kid` param to sign function by @ptoffy in https://github.com/vapor/jwt-kit/pull/144 * make JWK.Curve Equatable again by @JaapWijnen in https://github.com/vapor/jwt-kit/pull/145 * add curve and parameters properties to ECDSAKey protocol by @JaapWijnen in https://github.com/vapor/jwt-kit/pull/143 **Full Changelog**: https://github.com/vapor/jwt-kit/compare/5.0.0-beta.1...5.0.0-beta.2
5.0.0 Beta 1
9 weeks ago
First beta release of major version 5. - Remove BoringSSL by @ptoffy @gwynne - Add `Sendable` conformance by @ptoffy - Add `PSS` algorithm family by @MFranceschi6 - Allow for header, parsing and serialising customisation by @ptoffy - Replace `JWTSigners` with `JWTKeyCollection` by @ptoffy For all changes check out #107
4.13.2 - Update BoringSSL
9 weeks ago
## What's Changed Update BoringSSL by @0xTim in #134 > Updates BoringSSL to revision 58a318edc892a595a5b043359a5d441869158699 > > This is the final non-security release of JWTKit v4 ###### _This patch was released by @ptoffy_ **Full Changelog**: https://github.com/vapor/jwt-kit/compare/4.13.1...4.13.2
4.13.1 - Increase permitted range for crypto-kit dependency
29 weeks ago
## What's Changed Increase permitted range for crypto-kit dependency by @AndyHeardApps in #98 > Currently the crypto-kit package has a permitted version range of `2.0.0 ..< 3.0.0`. With the release of crypto-kit `3.0.0`, this range is preventing Vapor apps from making use of the latest versions. Increasing the range to `2.0.0 ..< 4.0.0` allows apps to use the latest release without forcing an update. ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/jwt-kit/compare/4.13.0...4.13.1
4.13.0 - Add customizable JSON encoders and decoders
40 weeks ago
Add new, fully source-compatible APIs to `JWTSigners` and `JWTSigner` which allow specifying custom JSON encoders and decoders. Also provides the `JWTJSONEncoder` and `JWTJSONDecoder` protocols, which allow using alternative JSON implementations. Custom coders specified for a single `JWTSigner` affect token parsing and signing performed only by that signer. Custom coders specified on a `JWTSigners` object will become the default coders for all signers added to that object, unless a given signer already specifies its own custom coders. The default encoding and decoding implementation provided for `JWTUnixEpochClaim` (of which `ExpirationClaim` (`exp`), `IssuedAtClaim` (`iat`), and `NotBeforeClaim` (`nbf`) are examples) has been adjusted to encode and decode its `Date` value directly, rather than performing the explicit conversion to and from a `Double`. This allows these claims to take advantage of the `dateEncodingStrategy` and `dateDecodingStrategy` specified on custom JSON coders. (It also gives a bit of the lie to the name `JWTUnixEpochClaim`, but it's public API, so I left it alone.) The default coders in use remain the same: An encoder and decoder which use the `.secondsSince1970` date encoding/decoding strategy. As such, neither the new support nor the change to `Date`-based claims affects how tokens are signed or verified unless custom coders with different strategies are specified (that being, after all, the original need which inspired these changes). Finally, an `.integerSecondsSince1970` date encoding and decoding strategy has been added to the public API for the benefit of interoperation with JWT implementations - such as that used by GitHub - which require the aforementioned date-based claims to specify values as an integer number of seconds. (As GitHub proves, while this is in violation of the definition of `NumericDate` given by RFC 7519 Β§ 2, which explicitly permits floating-point values, it nonetheless appears in the wild.) This is a `semver-minor` release, as it adds new public API (although it has been careful to fully retain source compatibility, at the cost of a goodly amount of silly-looking repetition in the implementation - please, do _not_ ask me if I know what default parameter values are! πŸ˜‚).
AppleIdentityToken: Adds `real_user_status` claim
42 weeks ago
###### _This patch was authored by @qalandarov and released by @0xTim._ Adds the missing `real_user_status` claim which helps detecting if the user is likely a real person. Closes #88
Improve JWKS `find(identifier:type:)`
42 weeks ago
###### _This patch was authored by @nnsnodnb and released by @0xTim._ Update JWKS `find(identifier:type:)` to use better Swift algorithms for matching
iOS macOS watchOS tvOS linux macOS iOS
vapor/queues 1.13.0
A queue system for Vapor.
⭐️ 158
πŸ•“ 38 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
1.13.0 - Misc cleanups
38 weeks ago
## What's Changed Misc cleanups by @gwynne in #123 > - Update Swift minimum version to 5.6 to match Vapor > - CI updates ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com//compare/1.12.1...1.13.0
Add missing platform specifiers
1 year ago
###### _This patch was authored and released by @gwynne._ Match Vapor's support
Add async job hooks
1 year ago
###### _This patch was authored by @madsodgaard and released by @0xTim._ * Bump Swift version to 5.5.2 * Backport concurrency to older platforms * Add `AsyncJobEventDelegate` for async hooks * Replace `Lock` with `NIOLock`
Fix typos in QueueWorker log messages
1 year ago
###### _This patch was authored by @heldersrvio and released by @jdmcd._ Fixes a few typo'd log messages.
Allow public access to set ScheduleBuilder Calendar
1 year ago
###### _This patch was authored by @dylanshine and released by @0xTim._ Adds a new `using(_:)` API to the `ScheduleBuilder` to allow the calendar to be set when creating jobs on a schedule
Add ability to use custom `Calendar` in `ScheduleBuilder`
1 year ago
###### _This patch was authored by @dylanshine and released by @jdmcd._ This PR introduces the ability to pass a custom `Calendar` to the `ScheduleBuilder`. I ran into an edge case where I have queues deployed across multiple regions and needed to schedule jobs based on specific time zones. I also cleaned up some unused computed properties in the `ScheduleBuilderTests` suite.
Update Supported Swift Versions
1 year ago
###### _This patch was authored and released by @0xTim._ This removes support for Swift 5.2 and Swift 5.3, making Swift 5.4 the earliest supported version [as announced](https://blog.vapor.codes/posts/vapor-swift-versions-update/)
Make AsyncScheduledJob public so clients can conform to it
2 years ago
###### _This patch was authored by @iKenndac and released by @0xTim._ This PR allows client apps to conform to the previously-added `AsyncScheduledJob` protocol by making it, and the associated adapter function from `ScheduledJob`, public.
Added AsyncScheduledJob and cleaned up AsyncJob.
2 years ago
###### _This patch was authored by @Andrewangeta and released by @jdmcd._ Allows `AsyncJob`s to be added to the app via `app.queues.add(...)` method.
Async Await Support via AsyncJob
2 years ago
###### _This patch was authored by @jdmcd and released by @0xTim._ Adds `AsyncJob` which allows you to specify a job that has async body implementations: ```swift struct MyJobPayload: Content { let name: String } struct MyAsyncJob: AsyncJob { func dequeue(context: QueueContext, payload: MyJobPayload) async throws { print(payload.name) } func error(context: QueueContext, error: Error, payload: MyJobPayload) async throws { print(error) } } // In configure.swift app.queues.add(MyAsyncJob()) ```
iOS macOS watchOS tvOS linux macOS iOS
vapor/fluent-postgres-driver 2.8.0
🐘 PostgreSQL driver for Fluent.
⭐️ 146
πŸ•“ 41 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
2.8.0 - Update for the nested subpath changes in FluentKit
41 weeks ago
###### _This patch was authored and released by @gwynne._ vapor/fluent-kit#572 takes advantage of the new support added to SQLKit in vapor/sql-kit#169, so remove the obsolete legacy support here. Also adds back a missing test that was accidentally lost at some point and does some minor tidying. (Note: Since we now depend on a version of FluentKit that is multiple minor versions newer than before, this must also be semver-minor.) https://github.com/vapor/fluent-postgres-driver/pull/215
Warn about deprecation of old config methods instead of breaking existing code
50 weeks ago
###### _This patch was authored and released by @gwynne._ Previously working code which uses the now-deprecated `PostgresConfiguration` type with the `.postgres` factory methods (rather than its replacement, `SQLPostgresConfiguration`) while specifying neither a data encoder or decoder was throwing compiler errors. Such code now issues the intended deprecation warning instead, while continuing to work as before. Fixes #211
Add missing deprecated method
50 weeks ago
###### _This patch was authored and released by @gwynne._ Without this addition, those using the original version of the method receive extremely unhelpful "unable to type-check this expression in reasonable time" errors.
Updated to use new PostgresKit/PostgresNIO APIs
50 weeks ago
###### _This patch was authored and released by @gwynne._ [PostgresKit 2.11.0](https://github.com/vapor/postgres-kit/releases/tag/2.11.0) heavily revamped PostgresKit to take full (or near to it) advantage of the modern PostgresNIO APIs. These changes do the same for FluentPostgresDriver, including adopting the revisions made to PostgresKit's API. This incidentally results in a significant improvement in the layering of the three packages, with FluentPostgresDriver now relying almost entirely on PostgresKit alone rather than needing to separately know details of PostgresNIO (with one or two exceptions). The end result is much cleaner code and moderate performance improvements. Swift 5.7 or later is now required. Users who previously specified custom `PostgresDataEncoder` and/or `PostgresDataDecoder` instances in their database configurations will begin receiving deprecation warnings; the replacements are PostgresNIO's `PostgresEncodingContext` and `PostgresDecodingContext`: ```swift let postgresEncoder = PostgresDataEncoder(json: JSONEncoder()) // deprecated let postgresEncodingContext = PostgresEncodingContext(jsonEncoder: JSONEncoder()) // new let defaultPostgresEncoder = PostgresDataEncoder() // deprecated let defaultPostgresEncodingContext = PostgresEncodingContext.default // new let postgresDecoder = PostgresDataDecoder(json: JSONDecoder()) // deprecated let postgresDecodingContext = PostgresDecodingContext(jsonDecoder: JSONDecoder()) // new let defaultPostgresDecoder = PostgresDataDecoder() // deprecated let defaultPostgresDecodingContext = PostgresDecodingContext.default // new ```
Update PostgresError's DatabaseError conformance for new PostgresNIO behavior
50 weeks ago
###### _This patch was authored and released by @gwynne._ This makes `DatabaseError.isSyntaxError` and `.isConstraintFailure` work again.
Require PostgresKit 2.10.1 for CVE-2023-31136 fix
51 weeks ago
###### _This patch was authored and released by @gwynne._ <!-- πŸš€ Thank you for contributing! --> <!-- Describe your changes clearly and use examples if possible. --> <!-- When this PR is merged, the title and body will be --> <!-- used to generate a release automatically. -->
Update min Swift version to 5.6 and make platform versions consistent
1 year ago
###### _This patch was authored and released by @gwynne._
Update to match FluentKit's declared version minimums
1 year ago
###### _This patch was authored and released by @gwynne._ This should help fix building in Xcode.
Update minimum Swift version to 5.5
1 year ago
###### _This patch was authored and released by @gwynne._ And a couple of minor cleanups to tests.
Add ability to control transactions
1 year ago
###### _This patch was authored and released by @0xTim._ Adds the ability to control starting, committing and rolling back transactions outside of the main Fluent API. This could be used for setting up tests. Since the new APIs give you manual control over a transaction, you should not use `Database.transaction(_:)` when using the manual transaction control. The `inTransactionFlag` will not be set when manually controlling a transaction > **Warning**: It is the users' responsibility to ensure the handle errors and rollback when necessary and commit transactions Related to vapor/fluent-kit#520
iOS macOS watchOS tvOS linux macOS iOS
vapor/open-crypto 4.0.0-beta.2
πŸ”‘ Hashing (BCrypt, SHA2, HMAC), encryption (AES), public-key (RSA), and random data generation.
⭐️ 133
πŸ•“ 3 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Crypto 3.4.1
3 years ago
Fixes a compile error when using OpenSSL 1.1 introduced in 3.4.0.
Crypto 3.4.0
3 years ago
Add support for DER encoded x509 certificate. ```swift import Crypto let rsa = try RSAKey.public(der: urlEncodedDer) ```
OpenCrypto 4.0.0 Beta 2
4 years ago
- Enabled test discovery on Linux. (#98)
OpenCrypto 4.0.0 Alpha 2
4 years ago
`CryptoKit` is now called `OpenCrypto`. OpenCrypto is a drop-in replacement for Apple's CryptoKit built on OpenSSL. This package is meant for use on platforms where CryptoKit is not available, like Linux. Most features from CryptoKit are available, but some are still missing: - βœ… MD5 - βœ… SHA1 - βœ… SHA2 (256, 384, 512) - βœ… HMAC - βœ… AES GCM (128, 192, 256) - βœ… ChaChaPoly (1305) - ❌ Curve25519 - ❌ NIST P (256, 384, 521)
CryptoKit 4.0.0 Alpha 1
4 years ago
More information on Vapor 4 alpha releases: https://medium.com/@codevapor/vapor-4-alpha-1-releases-begin-94a4bc79dd9a API Docs: https://api.vapor.codes/crypto-kit/master/CryptoKit/index.html
Crypto 3.3.3
5 years ago
Fixed: - Trying to parse a malformed RSA key no longer causes a fatalError (#87 - #88)
Crypto 3.3.2
5 years ago
Fixed: - Removed dependency on private `CNIOOpenSSL` package. (#81)
Crypto 3.3.1
5 years ago
Fixed: - Fixed a crash that could happen when using RSA with incorrect key type. (#79, #78) - Fixed an issue causing OpenSSL error messages to always yield "unknown error". (#79)
Crypto 3.3.0
5 years ago
New: - OpenSSL 1.1 support. (#74, #75) - [AES GCM](https://api.vapor.codes/crypto/latest/Crypto/Global%20Variables.html#/s:6Crypto9AES256GCMAA19AuthenticatedCipherCvp) now properly supports tags. (#68, #71) - [TOTP](https://api.vapor.codes/crypto/latest/Crypto/Structs/TOTP.html) and [HOTP](https://api.vapor.codes/crypto/latest/Crypto/Structs/HOTP.html) support have been added. (#72) ```swift import Crypto let code = TOTP.SHA1.generate(secret: "hi") print(code) "123456" ``` Fixed: - This package's private C libraries have been renamed and updated. (#75)
Crypto 3.2.0
5 years ago
New: - RSA now has `encrypt` and `decrypt` static methods (#64). - New `secureCompare(to:)` method on `Collection` (#67). Fixed: - Default AES mode is no longer ECB (#59, #66). - New AES cipher modes have been added (#60). - Fixed some incorrect usages of `withUnsafeBuffer` (#64). - `BCryptDigest` now uses secure compare when verifying hashes (#67). - `CryptoRandom` and `OSRandom` are now structs (#65).
macOS linux macOS iOS
vapor/multipart-kit 4.6.0
🏞 Parses and serializes multipart-encoded data with Codable support.
⭐️ 127
πŸ•“ 18 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.6.0 - Add Sendable Conformances
18 weeks ago
## What's Changed Add Sendable Conformances by @0xTim in #90 > Add Sendable annotations to remove warning when building with complete concurrency checking. > > Bumps the minimum supported Swift version to 5.7 ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/multipart-kit/compare/4.5.4...4.6.0
Fix recursion loop in decoding of a `SingleValueContainer`
1 year ago
###### _This patch was authored by @dkolas and released by @0xTim._ Fixes an issue where the `Decodable` object is expecting a single part, but receives a set of keys causing the `FormDataDecoder` to get stuck in an infinite loop and eventually crash. This changes the behaviour to throw an error in this case
Add platform specifiers
1 year ago
###### _This patch was authored and released by @gwynne._ Match Vapor's support
Depend on Swift Collections
1 year ago
###### _This patch was authored by @ahmdyasser and released by @0xTim._ Removes the vended copy of Swift Collections and adds it as a dependency. Resolves #82
Remove platform requirements
2 years ago
###### _This patch was authored and released by @0xTim._ Remove the platform requirements as they're not needed and it allows MultipartKit to be used on more platforms. Resolves #77
Add `FormDataDecoder.decode` with `ByteBuffer` parameter
2 years ago
###### _This patch was authored by @adam-fowler and released by @0xTim._ <!-- πŸš€ Thank you for contributing! --> <!-- Describe your changes clearly and use examples if possible. --> Add `FormDataDecoder.decode` with `ByteBuffer` parameter and use this function in the other `decode` functions. This avoids unnecessary conversions from ByteBuffer to [UInt8] and back. <!-- When this PR is merged, the title and body will be --> Add `FormDataDecoder.decode` with `ByteBuffer` parameter <!-- used to generate a release automatically. --> Resolves #75
Support Indexed Arrays
2 years ago
###### _This patch was authored and released by @siemensikkema._ Supports indexed array elements when decoding and encoding form data (fixes #67, replaces #69). Indicating that a value belongs to an array can now be done by appending `[0]`, `[1]`, etc. to the name, as an alternative to the already supported `[]`. This allows for representing nested data _inside_ elements in an array. For instance, `let matrix: [[Int]] = [[42,21]]` can now be represented using part names `matrix[0][0]` and `matrix[0][1]`. Without indexed array elements there is no way to distinguish the above from `[[42],[21]]`. > Note: `FormDataEncoder` now also includes indexes for array types in its output. Credits go to @chocoford for identifying the issue, the test cases and the initial PR!
Redesign FormDataEncoder and FormDataDecoder
2 years ago
###### _This patch was authored and released by @siemensikkema._ Redesign FormDataEncoder and FormDataDecoder to better align with Codable's intended behavior. - Support decoding top level optionals (fixes #68) - Adds a `userInfo` property to `FormDataDecoder` and `FormDataEncoder` - More correct handling of "superDecoder" and "superEncoder" - When nesting depth is exceeded we first fail when we’re actually trying to grab data from beyond the nesting limit - Add some missing API docs
Fix regression that broke falling back to Codable
2 years ago
###### _This patch was authored and released by @siemensikkema._ Fixes regression that broke falling back to `Codable` for types not conforming to `MultipartPartConvertible` (#66, fixes #65) Note: this removes conformance of `UUID` to `MultipartPartConvertible` introduced in 4.2.0 because it is no longer needed.
Add support for encoding/decoding UUIDs
2 years ago
###### _This patch was authored and released by @siemensikkema._ Add support for encoding and decoding `UUID`s (#64)
iOS macOS watchOS tvOS linux macOS iOS
vapor/routing-kit 4.9.0
🚍 High-performance trie-node router.
⭐️ 123
πŸ•“ 18 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.9.0 - Conform PathComponent to Hashable and Equatable
18 weeks ago
## What's Changed Conform PathComponent to Hashable and Equatable by @marius-se in #129 > Conforms `PathComponent` to Equatable. Related to [this PR](https://github.com/swift-server/swift-openapi-vapor/pull/13#issuecomment-1841643073) ## New Contributor - @marius-se made their first contribution in #129 πŸŽ‰ ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/routing-kit/compare/4.8.2...4.9.0
4.8.2 - Initial Sendable Work
24 weeks ago
## What's Changed Initial Sendable Work by @0xTim in #128 > Conform `Parameters`, `PathComponent` and `ConfigurationOption` to `Sendable`. ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/routing-kit/compare/4.8.1...4.8.2
4.8.1 - Improve multiply-defined route error message
28 weeks ago
## What's Changed Improve multiply-defined route error message by @gwynne in #127 > The log message that appears when a route with the same path and method has been specified more than once is now more understandable. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/routing-kit/compare/4.8.0...4.8.1
4.8.0 - Use a Logger instead of `print()`
36 weeks ago
## What's Changed Use a Logger instead of `print()` by @gwynne in #126 > Fixes #125 ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/routing-kit/compare/4.7.2...4.8.0
Make Parameters.allNames more compatible
1 year ago
###### _This patch was authored and released by @gwynne._ Apparently, the use of `some Collection<String>` is broken with some versions of Swift on macOS. This fix specifies an explicit concrete type instead, which is not API-breaking.
Add missing platform specifiers
1 year ago
###### _This patch was authored and released by @gwynne._ Match Vapor's support
Make set of found parameter names from a route more easily accessible
1 year ago
###### _This patch was authored and released by @gwynne._ Fixes #120
4.6.0
1 year ago
## What's Changed * Enable compilation on iOS by @makleso6 in https://github.com/vapor/routing-kit/pull/118 ## New Contributors * @makleso6 made their first contribution in https://github.com/vapor/routing-kit/pull/118 **Full Changelog**: https://github.com/vapor/routing-kit/compare/4.5.0...4.6.0
Pass a `Logger` to `Parameters`
1 year ago
###### _This patch was authored by @BennyDeBock and released by @0xTim._ Adds SwiftLog as a dependency. Adds a `Logger` to `Parameters` and a new initialiser to pass in your own `Logger`. This allows errors to be logged out.
Update Supported Swift Versions
1 year ago
###### _This patch was authored and released by @0xTim._ This removes support for Swift 5.2 and Swift 5.3, making Swift 5.4 the earliest supported version [as announced](https://blog.vapor.codes/posts/vapor-swift-versions-update/)
iOS macOS watchOS tvOS linux macOS iOS
vapor/apns 4.1.0
Helpful extensions and abstractions for using APNSwift
⭐️ 111
πŸ•“ 5 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.1.0 - Add Sendable conformances
5 weeks ago
## What's Changed Add Sendable conformances by @ffried in #57 > This adds `Sendable` conformances to all types in this library. ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/apns/compare/4.0.0...4.1.0
Updates to latest APNS
38 weeks ago
## What's Changed * Use HTTP Client from vapor and update APNS library, add multiple configs by @kylebrowning in https://github.com/vapor/apns/pull/46 * Update package to use Alpha 5 by @kylebrowning in https://github.com/vapor/apns/pull/48 * Add support for new version of APNSwift by @Gerzer in https://github.com/vapor/apns/pull/51 * Update to latest APNS by @kylebrowning in https://github.com/vapor/apns/pull/52 ## New Contributors * @Gerzer made their first contribution in https://github.com/vapor/apns/pull/51 **Full Changelog**: https://github.com/vapor/apns/compare/3.0.0...4.0.0
4.0.0-beta.3
49 weeks ago
## What's Changed * Add support for new version of APNSwift by @Gerzer in https://github.com/vapor/apns/pull/51 ## New Contributors * @Gerzer made their first contribution in https://github.com/vapor/apns/pull/51 **Full Changelog**: https://github.com/vapor/apns/compare/4.0.0-beta.2...4.0.0-beta.3
4.0.0-beta.2
1 year ago
Updating beta number
4.0.0-beta.1
1 year ago
## What's Changed * Use HTTP Client from vapor and update APNS library, add multiple configs by @kylebrowning in https://github.com/vapor/apns/pull/46 * Update package to use Beta 1 by @kylebrowning in https://github.com/vapor/apns/pull/48 **Full Changelog**: https://github.com/vapor/apns/compare/3.0.0...4.0.0-beta.1
4.0.0-alpha.3
1 year ago
## What's Changed * Use HTTP Client from vapor and update APNS library, add multiple configs by @kylebrowning in https://github.com/vapor/apns/pull/46 * Update package to use Alpha 5 by @kylebrowning in https://github.com/vapor/apns/pull/48 **Full Changelog**: https://github.com/vapor/apns/compare/3.0.0...4.0.0-alpha.3
4.0.0-alpha.2
1 year ago
## What's Changed * Use HTTP Client from vapor and update APNS library, add multiple configs by @kylebrowning in https://github.com/vapor/apns/pull/46 This is a breaking change and requires new configuration when starting up vapor. ```swift let authenticationConfig: APNSConfiguration.Authentication = .init( privateKey: try .loadFrom(string: appleECP8PrivateKey), teamIdentifier: "ABBM6U9RM5", keyIdentifier: "9UC9ZLQ8YW" ) let apnsConfig: APNSConfiguration = .init( authenticationConfig: authenticationConfig, topic: "MY_TOPIC", environment: .sandbox, eventLoopGroupProvider: .shared(app.eventLoopGroup), logger: app.logger ) app.apns.containers.use(apnsConfig, as: .default) ``` if you're loading your p8 file from disk, use `loadFrom(filePath:)` ```swift let authenticationConfig: APNSConfiguration.Authentication = .init( privateKey: try .loadFrom(filePath: "/Users/kylebrowning/Documents/AuthKey_9UC9ZLQ8YW.p8"), teamIdentifier: "ABBM6U9RM5", keyIdentifier: "9UC9ZLQ8YW" ) ``` You can also choose to send sandbox/prod environment on the notification send function ```swift try await apns.client.send(aps, to: deviceToken, on: .sandbox) ``` **Full Changelog**: https://github.com/vapor/apns/compare/3.0.0...4.0.0-alpha.2
4.0.0-alpha.1
1 year ago
## What's Changed * Use HTTP Client from vapor and update APNS library, add multiple configs by @kylebrowning in https://github.com/vapor/apns/pull/46 This is a breaking change and requires new configuration when starting up vapor. ```swift let authenticationConfig: APNSConfiguration.Authentication = .init( privateKey: try .loadFrom(string: appleECP8PrivateKey), teamIdentifier: "ABBM6U9RM5", keyIdentifier: "9UC9ZLQ8YW" ) let apnsConfig: APNSConfiguration = .init( authenticationConfig: authenticationConfig, topic: "MY_TOPIC", environment: .sandbox, eventLoopGroupProvider: .shared(app.eventLoopGroup), logger: app.logger ) app.apns.containers.use(apnsConfig, as: .default) ``` if you're loading your p8 file from disk, use `loadFrom(filePath:)` ```swift let authenticationConfig: APNSConfiguration.Authentication = .init( privateKey: try .loadFrom(filePath: "/Users/kylebrowning/Documents/AuthKey_9UC9ZLQ8YW.p8"), teamIdentifier: "ABBM6U9RM5", keyIdentifier: "9UC9ZLQ8YW" ) ``` You can also choose to send sandbox/prod environment on the notification send function ```swift try await apns.client.send(aps, to: deviceToken, on: .sandbox) ``` **Full Changelog**: https://github.com/vapor/apns/compare/3.0.0...4.0.0-alpha.1
Update to new major version of APNSwift
1 year ago
###### _This patch was authored by @code28 and released by @0xTim._ Updates the dependency to the new major version of APNSwift and new location for the package. This is a major release because of API changes but should be backwards compatible for the most part.
Update Supported Swift Versions
1 year ago
###### _This patch was authored and released by @0xTim._ This removes support for Swift 5.2 and Swift 5.3, making Swift 5.4 the earliest supported version [as announced](https://blog.vapor.codes/posts/vapor-swift-versions-update/)
iOS macOS
vapor/service 1.0.2
πŸ“¦ Dependency injection / inversion of control framework.
⭐️ 86
πŸ•“ 5 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Service 1.0.2
5 years ago
Fixed: - Silenced a Swift 5 warning. (#38)
Service 1.0.1
5 years ago
Fixed: - `ServiceType.makeService(_:)`'s internal variable was renamed to `container`. (#27)
Service 1.0.0
6 years ago
πŸ“¦ Introducing **Service**, a dependency injection / inversion of control framework. Getting Started: [https://docs.vapor.codes/3.0/service/getting-started/](https://docs.vapor.codes/3.0/service/getting-started/) API Docs: [https://api.vapor.codes/service/1.0.0/Service](https://api.vapor.codes/service/1.0.0/Service/index.html) -------- Changes since [1.0.0-rc.2.2](https://github.com/vapor/service/releases/tag/1.0.0-rc.2.2): New: - Cleaned up code, organized files, added many missing API docs. Converted some APIs to `internal` to reduce API surface. - Added [`ContainerAlias`](https://api.vapor.codes/service/latest/Service/Protocols/ContainerAlias.html) type allows a type to simply be an alias for another container. This allows `SubContainer` to become more specialized, reducing confusion. Milestone: [1.0.0](https://github.com/vapor/service/milestone/1?closed=1)
Service 1.0.0 RC 2.2
6 years ago
New: - Added `arguments` stored property to [`Environment`](https://api.vapor.codes/service/1.0.0-rc.2.2/Service/Structs/Environment.html). This can be used going forward to get and mutate the command line arguments in a non-static way. API Docs: [https://api.vapor.codes/service/1.0.0-rc.2.2/Service/](https://api.vapor.codes/service/1.0.0-rc.2.2/Service/) Milestone: [1.0.0-rc.2.2](https://github.com/vapor/service/milestone/5?closed=10)
Service 1.0.0 RC 2.1
6 years ago
New: - Added some convenience methods for working with `Extend`. [Milestone](https://github.com/vapor/service/milestone/4?closed=1)
Service 1.0.0 RC 2
6 years ago
New: - Vapor is now running on Swift NIO! - Providers now have separate `willBoot` and `didBoot` methods. Providers are expected to do as much work as possible in the `didBoot` method, making it much simpler for other providers to pre-empt that typical work (such as running something _before_ migrations run in Fluent). - Provider lifecycle methods now return a Future<Void> to ensure proper handling of async work. Note, this does not include the `register` services method since no async work should be done before there is a container available. Fixed: - Service tags and "needed by/for" have been removed. They were not really useful for anything and unnecessarily complicated the API. [Milestone](https://github.com/vapor/service/milestone/3?closed=1)
Service 1.0.0 RC 1
6 years ago
Service 1.0.0 Beta 2
6 years ago
New: - Removed `isSingleton: Bool` option from all service types. All `class` services will now be singletons. - `ServiceType` now includes conformance to `Service` - Better error messages [Milestone](https://github.com/vapor/service/milestone/2?closed=1)
Service 1.0.0 Beta 1.1
6 years ago
Service 1.0.0 Beta 1
6 years ago
linux macOS iOS
vapor/mysql-nio 1.7.1
🐬 Non-blocking, event-driven Swift client for MySQL.
⭐️ 81
πŸ•“ 14 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
1.7.1 - Tidy up package a bit
14 weeks ago
## What's Changed Tidy up package a bit by @gwynne in #103 > Fixes #102. > > Also does some rather overdue general cleanup of the repo. No functional changes. ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/mysql-nio/compare/1.7.0...1.7.1
Parse timestamp columns in text format. Fixes vapor/mysql-nio#71
50 weeks ago
###### _This patch was authored by @samalone and released by @gwynne._ Add support for reading timestamp columns in text format. Fixes #71
Several very long overdue crash fixes
50 weeks ago
###### _This patch was authored and released by @gwynne._ Items of note: - Replaced all the `assert()`s, `precondition()`s, and `fatalError()`s with thrown errors as appropriate. Removes almost every source of crashes - especially ones caused by input the user has no control over - in the package. - Fixes #87 (unexpected packets with no active command cause an assertion failure) - Fixes #91 (server error before handshake throws `invalidProtocolVersion()` instead of the appropriate `.server(ERR_Packet)`) - CI and README updates - Fixes the unit tests so they don't leave stale tables lying around. With the rewrite finally back to being actively worked on, it became really obvious how easy these fixes were to make even in the existing code, and I decided users shouldn't have to wait any longer for them, even if the rewrite drops the next day.
Update min Swift version to 5.6 and make platform versions consistent
1 year ago
###### _This patch was authored and released by @gwynne._
Add package minimum versions for all platforms
1 year ago
###### _This patch was authored by @elGeekalpha and released by @0xTim._ Adds the correct platform versions to match the Swift Crypto dependency to enable building on all platforms. Solves #81
Improve error handling
2 years ago
###### _This patch was authored and released by @gwynne._ - "Connection closed" errors are now correctly reported when trying to issue queries on closed connections, instead of throwing various NIO errors. - Query syntax errors are now explicitly reported. - Unique constraint violation errors are now more consistently reported. `semver-minor` due to adding a new case on `MySQLError`.
Widen our pin on Crypto versions: `"1.0.0" ..< "3.0.0"`
2 years ago
###### _This patch was authored by @fabianfett and released by @gwynne._ Needs patch release.
Clean up the ByteBuffer utility methods
2 years ago
###### _This patch was authored and released by @gwynne._ - Replace the `readNullTerminatedString()` implementation with the much more efficient version used by PostgresNIO. - Made `writeNullTerminatedString()`, `writeLengthEncodedInteger()`, and `writeLengthEncodedSlice()` return the number of bytes written, to match `ByteBuffer` method conventions. - Simplified `[read|write]LengthEncodedInteger()`, might be slightly faster but probably not enough to notice. - Remove a couple of unused utility methods altogether.
Fix hard crash when describing "zero" datetime
2 years ago
###### _This patch was authored and released by @gwynne._ Fixes #63. Also fixes a minor thread-safety issue and clears up deprecation warnings from NIOSSL.
Fix handling of null columns in TextResultSetRow
3 years ago
###### _This patch was authored by @NobodyNada and released by @tanner0101._ When `TextResultSetRow` encountered a null column, it did not increment the buffer index, and so it would repeatedly read `NULL` into every remaining column. This patch fixes the issue and adds regression tests (#57).
iOS macOS watchOS tvOS linux macOS iOS
vapor/core SR-6922
🌎 Utility package containing tools for byte manipulation, Codable, OS APIs, and debugging.
⭐️ 79
πŸ•“ 2 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
3.10.1
2 years ago
Fix a compilation error when building in Xcode 13
Conform File to ReflectionDecodable
4 years ago
`File` now conforms to `ReflectionDecodable`.
Core 3.9.3
4 years ago
Updated: * Use NIO's primitive functions for flatMap and its siblings (#211, @MrMage).
Core 3.9.2
4 years ago
- Fixed an issue with `DirectoryConfig.detect()` in Xcode 11 when using native SPM integration. (#208) Working directory detection methods used in Xcode projects created with `swift package generate-xcodeproj` no longer work in Xcode 11 when using native SPM integration. The Xcode team [has indicated](https://github.com/vapor/core/pull/208#issuecomment-525934546) to us that they are not planning on providing any workarounds to allow for this automatic directory detection to work in Xcode 11. Because of this, `DirectoryConfig.detect()` will no longer attempt to automatically determine the current working directory if it detects Xcode >= 11 using native SPM integration. Instead, it will always return the current working directory. By default, this current working directory will be a temporary folder used by Xcode. To change this, you must enable `Use custom working directory` in the scheme editor for your `Run` scheme: ![59303398-2365c080-8c64-11e9-87ad-dfcb239fa99f](https://user-images.githubusercontent.com/1342803/65252156-769ea900-dac6-11e9-94fc-071b1be091cd.png) You should set the custom working directory to the folder that contains the `Package.swift` file for your project. Once you have set a custom working directory for your scheme, `DirectoryConfig.detect()` will correctly detect and return that path to your application. This change should only need to be made once since Xcode project settings are persisted in the `.swiftpm` folder. Note that this change should only affect projects using Xcode >= 11 with native SPM integration. Projects using `swift package generate-xcodeproj` should continue to work without needing to make changes to the `Run` scheme.
Core 3.9.1
4 years ago
New: - Allows integration with iOS through SPM and Xcode 11 beta 1 (#206)
Core 3.9.0
5 years ago
New: - `Array.flatten` now uses NIO's `whenAll` method under the hood. This change [improves performance](https://github.com/vapor/core/pull/203#issue-269485433) of future flattening by ~3x. (#203)
Core 3.8.1
5 years ago
Fixed: - `File.ext` now returns `nil` if the file does not have an extension. (#198)
Core 3.8.0
5 years ago
New: - Add `MediaType.jsonAPI`. (#202) Fixed: - Improve performance of `Future.flatten`. (#199)
Core 3.7.3
5 years ago
Fixed: - Got rid of the last two pesky warnings for Swift 5. (#197, #196)
Core 3.7.2
5 years ago
Fixed: - Fixed some Swift 5 warnings.
linux macOS iOS
vapor/fluent-mysql-driver 4.4.0
πŸ–‹πŸ¬ Swift ORM (queries, models, relations, etc) built on MySQL.
⭐️ 76
πŸ•“ 41 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.4.0 - Update for the nested subpath changes in FluentKit
41 weeks ago
###### _This patch was authored and released by @gwynne._ vapor/fluent-kit#572 takes advantage of the new support added to SQLKit in vapor/sql-kit#169, so remove the obsolete legacy support here. Also does some minor tidying. (Note: Since we now depend on a version of FluentKit that is multiple minor versions newer than before, this must also be semver-minor.) https://github.com/vapor/fluent-mysql-driver/pull/218
Update min Swift version to 5.6 and make platform versions consistent
1 year ago
###### _This patch was authored and released by @gwynne._
Drop support for Swift 5.4
1 year ago
###### _This patch was authored and released by @gwynne._ Also incudes a round of CI modernizations. There are no API or functional changes in this version, but the minimum Swift version bump nonetheless requires this to be a semver-minor release.
Explicitly handle a custom ID key set to the empty string
1 year ago
###### _This patch was authored and released by @gwynne._ Treat it as meaning not to retrieve an inserted ID value. This is in support of upcoming FluentKit feature work.
Support the models-with-spaces FluentKit work
1 year ago
###### _This patch was authored and released by @gwynne._ See https://github.com/vapor/fluent-kit/pull/503
Improved error reporting via `DatabaseError`
2 years ago
###### _This patch was authored and released by @gwynne._ `DatabaseError`'s `isSyntaxError` and `isConnectionClosed` properties now correctly respect `MySQLError.invalidSyntax` and `MySQLError.closed` errors. A unit tests for these behaviors is included. Also avoids double-running the FluentBenchmark tests (same change as [fluent-sqlite-driver#75](https://github.com/vapor/fluent-sqlite-driver/pull/75)).
Fix deprecation warnings for TLSConfiguration
2 years ago
###### _This patch was authored and released by @gwynne._ A bit of simple cleanup for the deprecations in NIOSSL.
FluentMySQLDriver 4.0.0
3 years ago
###### _This patch was authored and released by @tanner0101._ Docs: https://docs.vapor.codes/4.0/fluent/overview/ https://docs.vapor.codes/4.0/fluent/model/ https://docs.vapor.codes/4.0/fluent/relations/ https://docs.vapor.codes/4.0/fluent/migration/ https://docs.vapor.codes/4.0/fluent/query/ https://docs.vapor.codes/4.0/fluent/schema/ https://docs.vapor.codes/4.0/fluent/advanced/ More information on Vapor 4 official release: https://forums.swift.org/t/vapor-4-official-release-begins/34802
Fix .references field constraint
3 years ago
###### _This patch was authored and released by @tanner0101._ Adds a fix for a MySQL [syntax quirk](https://stackoverflow.com/questions/14672872/difference-between-references-and-foreign-key) that caused `.references` constraints to be ignored (#191, fixes #170). MySQL does not allow the `REFERENCES foreign_table (column_name)` syntax like Fluent's other drivers do. When it sees this syntax, it simply ignores it with no warning. The only supported method for declaring for keys is to declare them as "table level" constraints. In other words, as a separate item in the create list. This change causes MySQL's `SQLSchemaConverter` to automatically translate field-level foreign key constraints (`.references`) to their table-level counterparts.
Add custom JSON encoder / decoder support
3 years ago
###### _This patch was authored and released by @tanner0101._ Adds support for configuring which JSON coders MySQL uses when serializing nested data to the database (#189). ```swift // Setup custom JSON coders that use unix timestamps let encoder = JSONEncoder() encoder.dateEncodingStrategy = .secondsSince1970 let decoder = JSONDecoder() decoder.dateDecodingStrategy = .secondsSince1970 // Configure MySQL database. app.databaes.use(.mysql( configuration: ..., encoder: MySQLDataEncoder(json: encoder), decoder: MySQLDataDecoder(json: decoder) )) ``` Note that for dates specifically, you can use [`@Timestamp` formats](https://docs.vapor.codes/4.0/fluent/model/#timestamp-format) to configure formatting per field.
iOS macOS watchOS tvOS linux macOS iOS
vapor/async-kit 1.19.0
Sugary extensions for the SwiftNIO library
⭐️ 71
πŸ•“ 25 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
1.19.0 - Clean up and soft-deprecate AsyncKit
25 weeks ago
## What's Changed Clean up and soft-deprecate AsyncKit by @gwynne in #106 > This update starts the official soft-deprecation of AsyncKit. It should not be used in new code (although it will remain included in Vapor and Fluent 4 for compatibility). It is not expected to receive new updates other than security fixes. > > Other changes in this update: > > - Require the current Vapor minimum Swift version of 5.7 > - The `~` operator on `EventLoopFuture` is now `public` as was intended (not that anyone noticed it wasn’t πŸ™‚) > - The tests run faster > - CI’s been updated ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/async-kit/compare/1.18.0...1.19.0
1.18.0 - Heavily revise the implementation of EventLoopConnectionPool
36 weeks ago
## What's Changed Heavily revise the implementation of EventLoopConnectionPool by @gwynne in #102 > ## Overview > > This is a temporary stopgap measure to clean up some of the more extant issues with the existing implementation, pending the integration of a much more robust and advanced connection pool solution. > > While technically there is no change in the public API surface, this is nonetheless being marked as semver-minor due to the significant changes in behavior. This PR has already revealed a query ordering bug in the Fluent benchmarks just by behaving more correctly. ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/async-kit/compare/1.17.0...1.18.0
Update min Swift version to 5.6 and make platform versions consistent
1 year ago
###### _This patch was authored and released by @gwynne._
Deprecate EventLoop.performWithTask() in favor of NIO's version
1 year ago
###### _This patch was authored and released by @gwynne._
Back deploy concurrency to older Apple Platforms
1 year ago
###### _This patch was authored by @sevki and released by @0xTim._ Enables concurrency features on macOS 10.15 et al. Drops support for Swift 5.5.0 and 5.5.1 to match SwiftNIO
Fix NIO "Lock" deprecation warnings
1 year ago
###### _This patch was authored and released by @gwynne._ Also drops support for Swift 5.4, since NIO has already done so. More than half of the changes included in this update were contributed by @Colgates in #95 - thanks again!
Enable compilation on iOS
1 year ago
###### _This patch was authored by @makleso6 and released by @0xTim._ This adds experimental support for building AsyncKit on iOS from iOS 11 onwards Close #93
Update Supported Swift Versions
1 year ago
###### _This patch was authored and released by @0xTim._ This removes support for Swift 5.2 and Swift 5.3, making Swift 5.4 the earliest supported version [as announced](https://blog.vapor.codes/posts/vapor-swift-versions-update/)
Removed file:line: from signature and code in Future+Try.swift
2 years ago
###### _This patch was authored by @rjhancock and released by @gwynne._ removed due to depreciation warnings issued with latest Vapor. <!-- πŸš€ Thank you for contributing! --> <!-- Describe your changes clearly and use examples if possible. --> Removes depreciated parameters `file:line:` from method signature and calling method. <!-- When this PR is merged, the title and body will be --> <!-- used to generate a release automatically. -->
Add `EventLoop.performWithTask(_:)` to complement `EventLoopGroup.performWithTask(_:)`
2 years ago
###### _This patch was authored and released by @gwynne._ Additional changes: - Reimplement `EventLoopGroup.performWithTask(_:)` in terms of `EventLoop.performWithTask(_:)`. - Match implementations to NIO's code patterns for consistency. - Major cleanup of AsyncKit source and tests layout (no functional changes). - Better tests for the `performWithTask()` utilities; somehow we missed that it was originally implemented only on ELG and not EL, even though the exist test should have shown that by not even compiling successfully. - Improvements to the CI workflows to match latest advances. Semver-minor release due to the addition of the missing public API.
iOS macOS watchOS tvOS linux macOS iOS
vapor/fluent-sqlite-driver 4.6.0
Fluent driver for SQLite
⭐️ 67
πŸ•“ 27 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.6.0 - Miscellaneous tidying
27 weeks ago
## What's Changed Miscellaneous tidying by @gwynne in #88 > Minimum Swift version has been bumped to 5.7 to match Vapor and Fluent; everything else is cosmetic or behind the scenes. ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/fluent-sqlite-driver/compare/4.5.0...4.6.0
4.5.0 - Update for the nested subpath changes in FluentKit
41 weeks ago
###### _This patch was authored and released by @gwynne._ vapor/fluent-kit#572 takes advantage of the new support added to SQLKit in vapor/sql-kit#169, so remove the obsolete legacy support here. Also does some minor tidying. (Note: Since we now depend on a version of FluentKit that is multiple minor versions newer than before, this must also be semver-minor.) https://github.com/vapor/fluent-sqlite-driver/pull/87
Update min Swift version to 5.6 and make platform versions consistent
1 year ago
###### _This patch was authored and released by @gwynne._
Add experimental support for watchOS
1 year ago
###### _This patch was authored by @hyouuu and released by @0xTim._ Adds watchOS adds a target platform to enable it to be built for that platform. **Note:** watchOS support is very much experimental and not currently a supported platform, though there is no reason why it shouldn't work
Drop support for Swift 5.4
1 year ago
###### _This patch was authored and released by @gwynne._ Minimum supported version is now Swift 5.5. Also includes the same upgrades to CI as those found in vapor/sqlite-kit#100 (most notably, adding the API breakage check and code coverage).
Explicitly handle a custom ID key set to the empty string
1 year ago
###### _This patch was authored and released by @gwynne._ Treat it as meaning not to retrieve an inserted ID value. This is in support of upcoming FluentKit feature work.
Add configurable connection pool timeout
2 years ago
###### _This patch was authored by @madsodgaard and released by @0xTim._ Adds option to configure the connection pool timeout (#74) ```swift databases.use(.sqlite(.memory, connectionPoolTimeout: .minutes(1)), as: .sqlite) ```
Minimum iOS version is 13
3 years ago
###### _This patch was authored and released by @calebkleveter._ The minimum iOS version supported by this package is now iOS 13 since the SqliteKit dependency requires it.
FluentSQLiteDriver 4.0.0
3 years ago
###### _This patch was authored and released by @tanner0101._ Docs: https://docs.vapor.codes/4.0/fluent/overview/ https://docs.vapor.codes/4.0/fluent/model/ https://docs.vapor.codes/4.0/fluent/relations/ https://docs.vapor.codes/4.0/fluent/migration/ https://docs.vapor.codes/4.0/fluent/query/ https://docs.vapor.codes/4.0/fluent/schema/ https://docs.vapor.codes/4.0/fluent/advanced/ More information on Vapor 4 official release: https://forums.swift.org/t/vapor-4-official-release-begins/34802
Clarify ALTER TABLE restrictions
3 years ago
###### _This patch was authored and released by @tanner0101._ Adds new checks and error messages to clarify SQLite's `ALTER TABLE` restrictions (#66, fixes #62).
iOS macOS watchOS tvOS linux macOS iOS
vapor/sqlite-nio 1.8.8
Non-blocking wrapper for libsqlite3-dev using SwiftNIO
⭐️ 58
πŸ•“ 1 week ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
1.8.8 - Embed sqlite amalgamation v3.45.3 source code
1 week ago
## What's Changed Embed sqlite amalgamation v3.45.3 source code by @gwynne in #66 > Update embedded SQLite from 3.45.2 to 3.45.3 ([SQLite release notes](https://sqlite.org/releaselog/3_45_3.html)). ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-nio/compare/1.8.7...1.8.8
1.8.7 - Embed sqlite amalgamation v3.45.2 source code
6 weeks ago
## What's Changed Embed sqlite amalgamation v3.45.2 source code by @gwynne in #64 > Update embedded SQLite from 3.45.1 to 3.45.2 ([SQLite release notes](https://sqlite.org/releaselog/3_45_2.html)). ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-nio/compare/1.8.6...1.8.7
1.8.6 - Embed sqlite amalgamation v3.45.1 source code
10 weeks ago
## What's Changed Embed sqlite amalgamation v3.45.1 source code by @gwynne in #63 > Update embedded SQLite from 3.45.0 to 3.45.1 ([SQLite release notes](https://sqlite.org/releaselog/3_45_1.html)). ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-nio/compare/1.8.5...1.8.6
1.8.5 - Embed sqlite amalgamation v3.45.0 source code
14 weeks ago
## What's Changed Embed sqlite amalgamation v3.45.0 source code by @gwynne in #62 > Update embedded SQLite from 3.44.2 to 3.45.0 ([SQLite release notes](https://sqlite.org/releaselog/3_45_0.html)). > > Also does some minor package cleanup. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-nio/compare/1.8.4...1.8.5
1.8.4 - Embed sqlite amalgamation v3.44.2 source code
21 weeks ago
## What's Changed Embed sqlite amalgamation v3.44.2 source code by @gwynne in #61 > Update embedded SQLite from 3.44.1 to 3.44.2 ([SQLite release notes](https://sqlite.org/releaselog/3_44_2.html)) ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-nio/compare/1.8.3...1.8.4
1.8.3 - Embed sqlite amalgamation v3.44.1 source code
22 weeks ago
## What's Changed Embed sqlite amalgamation v3.44.1 source code by @gwynne in #60 > Update embedded SQLite from 3.44.0 to 3.44.1 ([SQLite release notes](https://sqlite.org/releaselog/3_44_1.html)) > > Also includes some minor tweaks to the API documentation. ## Reviewers Thanks to the reviewers for their help: - @ptoffy ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-nio/compare/1.8.2...1.8.3
1.8.2 - Embed sqlite amalgamation v3.44.0 source code
25 weeks ago
## What's Changed Embed sqlite amalgamation v3.44.0 source code by @gwynne in #59 > Update embedded SQLite from 3.43.2 to 3.44.0 ([SQLite release notes](https://sqlite.org/releaselog/3_44_0.html)) ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-nio/compare/1.8.1...1.8.2
1.8.1 - Embed sqlite amalgamation v3.43.2 source code
28 weeks ago
## What's Changed Embed sqlite amalgamation v3.43.2 source code by @gwynne in #58 > Update embedded SQLite from 3.42.1 to 3.43.2 ([SQLite release notes](https://sqlite.org/releaselog/3_43_2.html)) ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-nio/compare/1.8.0...1.8.1
1.8.0 - Add method to allow singleton event loop use
31 weeks ago
## What's Changed Add method to allow singleton event loop use by @ptoffy in #56 > Implements #52. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-nio/compare/1.7.0...1.8.0
1.7.0 - Add basic Sendable correctness, update to SQLite 3.43.1
31 weeks ago
## What's Changed Add basic Sendable correctness, update to SQLite 3.43.1 by @gwynne in #51 > Changes in this release: > > - We now satisfy `StrictConcurrency=complete` with no warnings in this package. > - We also now satisfy `ExistentialAny`. > - Update embedded SQLite from 3.43.0 to 3.43.1 ([SQLite release notes](https://sqlite.org/releaselog/3_43_1.html)) > - The vendoring script is now an SPM command plugin. Run it with `swift package --disable-sandbox vendor-sqlite`. Accepts `--help`, `--verbose`, and `--force` options. (Users should not need to run this command.) > - The `SQLCustomFunction` feature’s API documentation has been heavily improved. ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-nio/compare/1.6.0...1.7.0
iOS macOS watchOS tvOS linux macOS iOS
vapor/validation 2.1.1
βœ… Extensible data validation library (name, email, etc)
⭐️ 56
πŸ•“ 4 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Validation 2.1.1
5 years ago
Fixed: - Improved error messages for `CountValidator` and `RangeValidator`. (#31)
Validation 1.1.2
5 years ago
Validation 2.1.0
5 years ago
New: - Added `.url` validator. (#28) ```swift try validations.add(\.profilePictureURL, .url || .nil) ``` - Added `.empty` validator. (#27) ```swift try validations.add(\.preferedColors, !.empty) ```
Validation 2.0.0
6 years ago
Validation **2.0** is here! πŸŽ‰ βœ… Extensible data validation library (name, email, etc) Docs: [https://docs.vapor.codes/3.0/validation/getting-started/](https://docs.vapor.codes/3.0/validation/getting-started/) API Docs: [https://api.vapor.codes/validation/latest/Validation](https://api.vapor.codes/validation/latest/Validation/index.html) Milestone: [2.0.0](https://github.com/vapor/validation/milestone/4?closed=1) ----------------- Changes since final release candidate: Validation was in need of some love before the official release. The APIs have been streamlined quite a bit. - `Validators` are now accessed via leading-dot syntax instead of globally available types. - `Validatable` now requires a static function instead of a static property. - `Validations` are now generic. - `ValidationData` has been removed in favor of type-safe alternative. - Separate Range and Count validators. - New CharacterSet validator. Here's an example of how the API looks now compared to previous release: ### 2.0.0 ```swift struct User: Validatable, Reflectable, Codable { var id: Int? var name: String var age: Int var email: String? static func validations() throws -> Validations<User> { var validations = Validations(User.self) try validations.add(\.name, .count(5...) && .alphanumeric) try validations.add(\.age, .range(18...)) try validations.add(\.email, .email || .nil) return validations } } ``` ### 2.0.0-rc ```swift struct User: Validatable, Reflectable, Codable { var id: Int? var name: String var age: Int var email: String? static var validations: Validations = [ key(\.name): IsCount(5...) && IsAlphanumeric(), key(\.age): IsCount(18...), key(\.email): IsEmail() || IsNil() ] } ```
Validation 2.0.0 RC 2.1
6 years ago
New: - Use `Core.Reflectable` protocol. [Milestone](https://github.com/vapor/validation/milestone/6?closed=1)
Validation 2.0.0 RC 2
6 years ago
New: - Vapor is now running on Swift NIO! [Milestone](https://github.com/vapor/validation/milestone/5?closed=1)
Validation 2.0.0 RC 1
6 years ago
Validation 2.0.0 Beta 2
6 years ago
New: - Update to latest core dependency.
Validation 2.0.0 Beta 1.1
6 years ago
Validation 2.0.0 Beta 1
6 years ago
linux macOS iOS
vapor/sqlite-kit 4.4.2
Non-blocking SQLite client library with SQL builder built on SwiftNIO
⭐️ 56
πŸ•“ 14 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.4.2 - Handle JSON better
14 weeks ago
## What's Changed Handle JSON better by @gwynne in #107 > This fixes an issue that arose with the release of SQLite 3.45.0, which includes support for a new β€œJSONB” internal representation. As a side effect, textual JSON data presented to SQLite as a BLOB is incorrectly treated as JSONB by the database, resulting in inexplicable errors when attempts are made to read the JSON back out again. Since we should always have been sending JSON to the database as TEXT in the first place, this is considered a general bugfix rather than purely a compatibility update. > > Unblocks vapor/sqlite-nio#62. ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-kit/compare/4.4.1...4.4.2
4.4.1 - Make nil decoding handling for SQLiteRows consistent with the other drivers
27 weeks ago
## What's Changed Make nil decoding handling for SQLiteRows consistent with the other drivers by @gwynne in #106 > Dating back to the original release of Fluent 4, the MySQL and Postgres SQLKit drivers ([mysql-kit](https://github.com/vapor/mysql-kit) and [postgres-kit](https://github.com/vapor/postgres-kit)) have always returned `true` from `SQLRow.decodeNil(column:)` when the column is not present, whereas the SQLite driver has thrown an error. This PR finally brings SQLite in line with the others. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-kit/compare/4.4.0...4.4.1
4.4.0 - Revise in-memory database handling for modern SQLite
32 weeks ago
## What's Changed Revise in-memory database handling for modern SQLite by @gwynne in #105 > SQLiteKit has for a long time depended on the use of SQLite’s shared cache with in-memory databases to support opening multiple connections to such databases. However, SQLite has also for a long time specifically recommended the total omission of the shared cache, a recommendation which SQLiteNIO now follows as of vapor/sqlite-nio#51. Therefore, SQLiteKit now uses uniquely-named temporary files to emulate the feature when in-memory databases are requested. > > Additional changes in this release: ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-kit/compare/4.3.1...4.4.0
4.3.1 - Add SQLite support for nested subpath (JSON) expressions
41 weeks ago
###### _This patch was authored and released by @gwynne._ Implements SQLKit's new `SQLDialect.nestedSubpathExpression(in:for:)` method.
Update min Swift version to 5.6 and make platform versions consistent
1 year ago
###### _This patch was authored and released by @gwynne._
4.2.1
1 year ago
## What's Changed * Add API Docs by @0xTim in https://github.com/vapor/sqlite-kit/pull/101 * Switch to reusable CI workflow by @gwynne in https://github.com/vapor/sqlite-kit/pull/102 **Full Changelog**: https://github.com/vapor/sqlite-kit/compare/4.2.0...4.2.1
Modernize SQLite feature support
1 year ago
###### _This patch was authored and released by @gwynne._ The following changes have been made: - `SQLiteDatabase` now vends the version of SQLite in use per the `SQLDatabaseReportedVersion` protocol. - `UPSERT` syntax is now available for SQLite when the runtime library version is new enough (3.24.0 or newer) - `RETURNING` syntax is now available for SQLite when the runtime library version is new enough (3.35.0 or newer) - When emitting placeholders for bound parameters, the numbered `?NNN` syntax is now used instead of plain `?` placeholders. - Requests to create columns of type `.bigint` (via `SQLCreateTable` or Fluent's `SchemaBuilder`) now map explicitly to the `INTEGER` type name, which has the same data size but will correctly enable auto-increment behavior if the column is a table's primary key (previously this only worked when specifying `SQLDataType.int` or Fluent equivalent). - Dropped support for Swift up to and including 5.4, 5.5 is now the minimum. - CI was heavily updated, with the same changes as were made to SQLiteNIO. These changes depend on vapor/sqlite-nio#34.
Declare supported UNION features
2 years ago
###### _This patch was authored and released by @gwynne._ Leverages the new dialect flags from [vapor/sql-kit#144](https://github.com/vapor/sql-kit#144) to enable full `UNION` queries according to SQLite's support. The increased SQLKit version requirement makes this a `semver-minor` change.
Minimum iOS version is 13
3 years ago
###### _This patch was authored and released by @calebkleveter._ The minimum iOS version supported by this package is now iOS 13 since the SqliteNIO dependency requires it.
Update SQLite to 3.29, match extensions with macOS
3 years ago
Updates to SQLite 3.29.0 and enables extensions similar to macOS's included SQLite (#55).
iOS macOS watchOS tvOS linux macOS iOS
vapor/leaf-kit 1.10.5
πŸƒ An expressive, performant, and extensible templating language built for Swift.
⭐️ 46
πŸ•“ 5 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
1.10.5 - Fix crash with missing parameter
5 weeks ago
## What's Changed Fix crash with missing parameter by @b-nassler in #130 > This line https://github.com/vapor/leaf-kit/blob/main/Sources/LeafKit/LeafParser/LeafParser.swift#L203 > would cause a crash when no parameters are found > > Fixed issue that lead to a crash when parameters would be empty in line https://github.com/vapor/leaf-kit/blob/main/Sources/LeafKit/LeafParser/LeafParser.swift#L203 ## New Contributor - @b-nassler made their first contribution in #130 πŸŽ‰ ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/leaf-kit/compare/1.10.4...1.10.5
1.10.4 - Fix extend not rendered when wrapped by with
5 weeks ago
## What's Changed Fix extend not rendered when wrapped by with by @benblakely in #129 > When an `#extend` was wrapped by a `#with`, the `#extend` wasn’t rendered. > > Fixes vapor/leaf-kit#128 ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/leaf-kit/compare/1.10.3...1.10.4
1.10.3 - Fix nested extend with sugar
20 weeks ago
## What's Changed Fix nested extend with sugar by @benblakely in #127 > When nesting an `#extend` with two parameters, the second parameter was ignored instead of being used as context. > > Fixes vapor/leaf-kit#126 ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/leaf-kit/compare/1.10.2...1.10.3
Add missing platform specifiers
1 year ago
###### _This patch was authored and released by @gwynne._ Match Vapor's support
Fix error message in loop syntax
1 year ago
###### _This patch was authored and released by @0xTim._ Syntax errors thrown from loops now show the correct error message!
add isEmpty tag
1 year ago
###### _This patch was authored by @fananek and released by @0xTim._ Adds a new `isEmpty` tag for checking empty Strings. Equivalent of Swift's `isEmpty` Example: ```leaf #if(isEmpty(emptyString)): This is an empty string. #endif ```
Extend for loops with custom index support
1 year ago
###### _This patch was authored by @vzsg and released by @0xTim._ Traditionally, the `for` loops in Leaf declare three variables in the loop's local context: `isFirst`, `isLast` and `index`. The first two aren't particularly interesting, but being able to access all indices in a *nested* for loop situation is sometimes useful when working with two dimensions at once. Not to mention it just popped up on Discord earlier today. This PR extends Loop with the option of renaming `index`. Example syntax: ```leaf #for(i, array in arrays): #for(j, element in array): (#(i), #(j)): #(element) #endfor #endfor ``` --- Should be semver-minor.
Add #dumpContext tag
1 year ago
###### _This patch was authored by @marius-se and released by @0xTim._ Adds a new tag, `#dumpContext()` that renders the whole context for easy debugging
Adds a new `#with()` tag to make it easier to embed and extend tags
1 year ago
###### _This patch was authored by @pontaoski and released by @0xTim._ Adds a new `#with()` tag to make it easier to work with extend and embed tags: ```leaf #with(parent): #(child) #endwith ```
Update Supported Swift Versions
1 year ago
###### _This patch was authored and released by @0xTim._ This removes support for Swift 5.2 and Swift 5.3, making Swift 5.4 the earliest supported version [as announced](https://blog.vapor.codes/posts/vapor-swift-versions-update/)
iOS macOS watchOS tvOS linux macOS iOS
vapor/template-kit 1.5.0
πŸ“„ Easy-to-use foundation for building powerful templating languages in Swift.
⭐️ 44
πŸ•“ 4 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Support rendering URLs
4 years ago
###### _This patch was authored and released by @tanner0101._ Adds support for serializing URLs in templates (#38, fixes #64).
TemplateKit 1.4.0
4 years ago
New: - Adds a new init method `DateFormat(defaultDateFormatterFactory: () -> DateFormatter)` (#45) - Adds a new static `DateFormat.iso8601` tag that uses ISO-8601 formatting (#45)
TemplateKit 1.3.0
4 years ago
New: - Performance improvements to HTML string escaping (#56) - New `String.htmlEscaped()` method (#56)
TemplateKit 1.2.0
5 years ago
New: - `TemplateDataEncoder` has been refactored for improved performance. (#50) - `DateFormatter`s are now cached during rendering for improved performance. (#51) Fixed: - `DateFormat` now returns null when arguments are null. (#44) - Context `userInfo` does now get passed to nested scopes. (#53, #54) - Using `#for` on null array now returns null. (#55)
TemplateKit 1.1.2
5 years ago
Fixed: - Fixed an issue with `UnsafeBufferPointer` in Swift 5. (#46)
TemplateKit 1.1.1
5 years ago
Fixed: - `userInfo` is now correctly passed when using `#embed`. (#41, #42)
TemplateKit 1.1.0
5 years ago
New: - Performance improvements for files loaded from disk. (#24) - `ViewRenderer` now supports passing a `userInfo` dictionary that will be accessible by `TagRenderer`s. (#17, #28) ```swift return req.view().render("welcome", ["name": "Vapor"], userInfo: ["foo": "bar"]) ``` ```swift final class FooTag: TagRenderer { func render(_ tag: TagContext) -> ... { print(tag.context.userInfo["foo"]) } } ``` Fixed: - Fixed issue which could cause incorrect views to be returned from cache. (#26, #25, #31). - Fixed `LeafDataEncoder` to properly recognize custom encoding methods. (#29, #20, #30). - Fixed `#date` tag crasher. (#23)
TemplateKit 1.0.1
6 years ago
Fixed: - Re-added `ViewRenderer`. Milestone: [1.0.1](https://github.com/vapor/template-kit/milestone/5?closed=1)
TemplateKit 1.0.0
6 years ago
Introducing **Template Kit** 1.0 πŸŽ‰ Template Kit is an easy-to-use foundation for building powerful templating languages in Swift. Docs: [https://docs.vapor.codes/3.0/template-kit/getting-started/](https://docs.vapor.codes/3.0/template-kit/getting-started/) API Docs: [https://api.vapor.codes/template-kit/latest/TemplateKit](https://api.vapor.codes/template-kit/latest/TemplateKit/index.html) Milestone: [1.0.0](https://github.com/vapor/template-kit/milestone/1?closed=1) ----------------- Changes since final release candidate: Fixed: - Audited and internalized several APIs to minimize API surface. - Removed `TemplateData.future` case in favor of `TagRenderer`s returning `Future<TemplateData>` (was redundant previously). - Added lots of missing doc blocks, now at 100% docs coverage.
Template Kit 1.0.0 RC 2.0.1
6 years ago
New: - Adds `isFirst` and `isLast` variables alongside `index` while using iterators.
linux macOS iOS
vapor/url-encoded-form 1.1.0
πŸ“ Parse and serialize url-encoded form data with Codable support.
⭐️ 41
πŸ•“ 3 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Add support for Codable types with URL properties.
4 years ago
Add support for encoding and decode URLs. Fixes #24
URLEncodedForm 1.0.7
4 years ago
Encodes reserved characters like `&` in URL-encoded form keys and values.
URL-Encoded Form 1.0.6
5 years ago
Fixed: - Silenced a Swift 5 warning.
URL-Encoded Form 1.0.5
5 years ago
Fixed: - Fixes an issue that prevented nested structs from being properly decoded. (#16, #15) - Added tests to ensure nested enums decode properly. (#10) - Added special `Decimal` conformance to decode / encode as a `String`. (#11)
URL-Encoded Form 1.0.4
5 years ago
Fixed: - Worked around a compiler bug that prevented building on Swift 4.2 (#12, #13).
URL-Encoded Form 1.0.3
5 years ago
Fixed: - Percent encoded ampersands are now decoded properly (#8). - Keyed decoding errors now have correct key path (#7). Milestone: [1.0.3](https://github.com/vapor/url-encoded-form/milestone/4?closed=1)
URL-Encoded Form 1.0.2
6 years ago
Fixed: - `RawRepresentable` enums should now work properly (#5). - Added support for fuzzy `Bool` (#3, #5) Milestone: [1.0.2](https://github.com/vapor/url-encoded-form/milestone/3?closed=1)
URL-Encoded Form 1.0.1
6 years ago
Fixed: - Fixed a warning about `fileprivate` extensions.
URL-Encoded Form 1.0.0
6 years ago
Introducing URL-encoded Form 1.0! πŸŽ‰ πŸ“ Previously this package was part of Vapor, but now it has been separated so that any Swift project can take advantage of it. This package parses and serializes url-encoded form data with Codable support. Docs: [https://docs.vapor.codes/3.0/url-encoded-form/getting-started/](https://docs.vapor.codes/3.0/url-encoded-form/getting-started/) API Docs: [https://api.vapor.codes/url-encoded-form/latest/URLEncodedForm](https://api.vapor.codes/url-encoded-form/latest/URLEncodedForm/index.html) Milestone: [1.0.0](https://github.com/vapor/url-encoded-form/milestone/1?closed=1)
linux macOS iOS
vapor/database-kit 1.3.3
πŸ—„ Core services for creating database integrations.
⭐️ 40
πŸ•“ 5 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
DatabaseKit 1.3.3
5 years ago
Fixed: - `KeyedCache.get(_:)` is no longer internal. (#50, #57)
DatabaseKit 1.3.2
5 years ago
Fixed: - Fixed an error that could cause connection pool to be exhausted when creating new connections failed. (#51)
DatabaseKit 1.3.1
5 years ago
Fixed: - `DatabaseConnectionPoolConfig` now defaults to a max of `10` connections per pool. (#47, #45, #48) Previously, the max connections per pool would default to `System.coreCount`. This could create hanging request issues on some Linux deploys where the core count was `1`. If a max of `10` is too high, you can still of course configure this to any value you want using the following snippet during service configuration. ```swift services.register { container in return DatabaseConnectionPoolConfig(maxConnections: 5) } ```
DatabaseKit 1.3.0
5 years ago
New: - Adds a new `connectionPool` parameter when requesting a cached connection from a container. (#43, #44).
DatabaseKit 1.2.0
5 years ago
New: - Adds [`DatabaseQueryable`](https://api.vapor.codes/database-kit/latest/DatabaseKit/Protocols/DatabaseQueryable.html) protocol for uniting DB query APIs across drivers (#39).
DatabaseKit 1.1.0
5 years ago
New: - `DatabaseConnection` now has an associated database type (#38).
Database Kit 1.0.1
5 years ago
Fixed: - Added deprecations for `requestConnection(...)` and `releaseConnection(...)` extensions on `Container`. Milestone: [1.0.1](https://github.com/vapor/database-kit/milestone/11?closed=1)
Database Kit 1.0.0
6 years ago
Introducing Database Kit **1.0** πŸŽ‰ πŸ—„ Core services for creating database integrations. Docs: [https://docs.vapor.codes/3.0/database-kit/getting-started/](https://docs.vapor.codes/3.0/database-kit/getting-started/) API Docs: [https://api.vapor.codes/database-kit/latest/DatabaseKit](https://api.vapor.codes/database-kit/latest/DatabaseKit/index.html) ------------- Changes since last RC: New: - `ConfiguredDatabase` type for more consistent connection configuration. - `DatabaseKeyedCache` type replaces Fluent keyed cache. Fixed: - `DatabaseConfig` renamed to `DatabasesConfig` to make it clear that it is for configuring _multiple_ dbs. - `withConnection(...)` renamed to `withNewConnection(...)` to better distinguish it from the pooled methods. Milestone: [1.0.0](https://github.com/vapor/database-kit/milestone/10?closed=1)
DatabaseKit 1.0.0 RC 2.2.1
6 years ago
New: - Added a [`databaseName`](https://api.vapor.codes/database-kit/1.0.0-rc.2.2.1/DatabaseKit/Extensions/URL.html#/s:10Foundation3URLV11DatabaseKitE12databaseNameSSSgv) property to `URL`. API Docs: [https://api.vapor.codes/database-kit/1.0.0-rc.2.2.1/DatabaseKit/](https://api.vapor.codes/database-kit/1.0.0-rc.2.2.1/DatabaseKit/index.html) [https://api.vapor.codes/database-kit/1.0.0-rc.2.2.1/SQL/](https://api.vapor.codes/database-kit/1.0.0-rc.2.2.1/SQL/index.html)
Database Kit 1.0.0 RC 2.1.1
6 years ago
Fixed: - Fixed an issue where IN/NOT-IN predicates with 0 or 1 values would serialize incorrectly. Milestone: [1.0.0-rc.2.1.1](https://github.com/vapor/database-kit/milestone/9?closed=1)
linux macOS iOS
vapor/fluent-mongo-driver 1.3.1
MongoDB support for Fluent built on MongoKittten.
⭐️ 23
πŸ•“ 49 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Work around dependency conflict in latest DNSClient
49 weeks ago
###### _This patch was authored and released by @gwynne._ Pins DNSClient to a version that doesn't exhibit the conflict for now.
Update min Swift version and platforms requirements
50 weeks ago
###### _This patch was authored and released by @gwynne._ Swift 5.6 is now the minimum supported version.
Add minimal support for the new `.advancedJoin()` join type in Fluent
1 year ago
###### _This patch was authored and released by @gwynne._ Restores compatibility with FluentKit 1.37.0
Update minimum Swift version to 5.5
1 year ago
###### _This patch was authored and released by @gwynne._ Also modernize CI.
Fix build error with new Fluent support for models with composite primary keys
1 year ago
###### _This patch was authored and released by @gwynne._ Also follows suit with other Vapor packages, plus NIO, by dropping support for Swift 5.2 and 5.3.
Support the models-with-spaces FluentKit work
1 year ago
###### _This patch was authored and released by @gwynne._ See vapor/fluent-kit#503
Make `FluentMongoError` public
2 years ago
###### _This patch was authored by @MFranceschi6 and released by @0xTim._ Make `FluentMongoError` public so it can be examined by end-users. Fixes #45
Upgrade MongoKitten Version
3 years ago
###### _This patch was authored by @qi-shun-wang and released by @0xTim._ When receiving a lot of MongoDB traffic (millions of requests), a small leak in MongoKitten would become a performance and memory problems in services. This patch depends on the MongoKitten version with that fix. See: https://github.com/OpenKitten/MongoKitten/issues/254
Add contains operator support
3 years ago
###### _This patch was authored and released by @tanner0101._ Adds support for the contains (`~~`) operator (#35).
Release FluentMongoDriver 1.0.0
3 years ago
###### _This patch was authored and released by @Joannis._ Docs: https://docs.vapor.codes/4.0/fluent/overview/ https://docs.vapor.codes/4.0/fluent/model/ https://docs.vapor.codes/4.0/fluent/relations/ https://docs.vapor.codes/4.0/fluent/migration/ https://docs.vapor.codes/4.0/fluent/query/ https://docs.vapor.codes/4.0/fluent/schema/ https://docs.vapor.codes/4.0/fluent/advanced/#mongodb More information on Vapor 4 official release: https://forums.swift.org/t/vapor-4-official-release-begins/34802
iOS macOS watchOS tvOS linux macOS iOS
vapor/queues-redis-driver 1.1.1
A Redis implementation for https://github.com/vapor/queues
⭐️ 22
πŸ•“ 47 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Implemented redisTLSClient and add it to the RedisConnectionPool
47 weeks ago
###### _This patch was authored by @Kishimotovn and released by @gwynne._ This PR is to mirror the updates from https://github.com/vapor/redis/pull/205 to the Queues Redis Driver to support SSL connection for Redis.
Misc cleanups
47 weeks ago
###### _This patch was authored and released by @gwynne._ - Updates min Swift version to 5.6 to match Vapor - Updates CI (it's a Gwynne PR, what were you expecting?) - Updates README
Add missing platform specifiers
1 year ago
###### _This patch was authored and released by @gwynne._ Also bump Swift version minimum to something closer to Vapor's
Use `context.eventLoop` for executing redis commands
2 years ago
###### _This patch was authored by @Andrewangeta and released by @jdmcd._ Adds full conformance to the `RedisClient` protocol to use the context's eventLoop for commands vs the default `RedisConnectionPool`s `RedisConnection` eventLoop for commands.
Fixes delayed jobs being kept in the processing queue.
3 years ago
###### _This patch was authored by @Andrewangeta and released by @jdmcd._ Pushing delayed jobs back into the queue should also remove them from the processing queue. <!-- πŸš€ Thank you for contributing! --> <!-- Describe your changes clearly and use examples if possible. --> <!-- When this PR is merged, the title and body will be --> <!-- used to generate a release automatically. -->
Sets the Date encoding/decoding strategy for getting and setting values.
3 years ago
###### _This patch was authored by @Andrewangeta and released by @jdmcd._ <!-- πŸš€ Thank you for contributing! --> <!-- Describe your changes clearly and use examples if possible. --> Sets the Date encoding/decoding strategy for getting and setting values. (This should only effect top level properties like `queuedAt` and `delayUntil` not the custom payload) <!-- When this PR is merged, the title and body will be --> <!-- used to generate a release automatically. -->
1.0.0
3 years ago
Please see the [docs](https://docs.vapor.codes/4.0/queues/) for using queues.
Use Redis v4 release
3 years ago
###### _This patch was authored and released by @Mordil._
Drop RedisKit dependency to use Vapor/Redis directly
3 years ago
###### _This patch was authored by @Mordil and released by @0xTim._ Drop RedisKit and use Vapor/Redis directly (#19)
Updated Vapor and Queues Releases
4 years ago
- Updates to official Vapor and Queues releases. - Adds doc blocks.
iOS macOS watchOS tvOS linux macOS iOS
vapor/kafka 0.0.0
Swift Apacha Kafka (real-time data pipelines and streaming apps)
⭐️ 19
πŸ•“ 3 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
First initial release
6 years ago
vapor/redis-kit 1.0.0-beta.5.1
Helpful extensions and abstractions for using RediStack
⭐️ 8
πŸ•“ 3 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
RedisKit 1.0.0 Beta 5.1
3 years ago
The package manifest now pins exactly to the last RediStack alpha release (`1.0.0-alpha.10`) #34
Update to RediStack Alpha 8
4 years ago
###### _This patch was authored by @Mordil and released by @tanner0101._ Updates to latest RedisStack alpha (#31, #30).
Swift 5.2 + macOS 10.15
4 years ago
Updates package requirements. This patch was authored and released by @tanner0101.
RedisStack Alpha 7 updates
4 years ago
Updates to RedisStack 1.0.0 Alpha 7 with support for `Logger` passing (#26)
RedisKit 1.0.0 Beta 2
4 years ago
Update to AsyncKit beta 2.
RedisKit 1.0.0 Beta 1
4 years ago
Update to AsyncKit 1.0.0 Beta 1.
RedisKit 1.0.0 alpha 3
4 years ago
- Added `RedisSet` helper for working with Redis' set API. (#18) - Added `get` / `set` helpers for working with JSON encoded data using `Codable`. (#15, #19)
RedisKit 1.0.0 Alpha 2
4 years ago
## Major - Updates to latest RedisNIO (now called RediStack) #17
RedisKit 1.0.0 Alpha 1.1
4 years ago
Fixed: - `isClosed` now returns the correct value. (#16)
RedisKit 1.0.0 Alpha 1
4 years ago
More information on Vapor 4 alpha releases: https://medium.com/@codevapor/vapor-4-alpha-1-releases-begin-94a4bc79dd9a API Docs: https://api.vapor.codes/redis-kit/master/RedisKit/index.html
macOS

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics