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.87.1
πŸ’§ A server-side Swift HTTP web framework.
⭐️ 23,370
πŸ•“ 6 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.87.1 - General warnings and tests cleanup
6 days ago
## What's Changed General warnings and tests cleanup by @gwynne in #3107 > These changes fix almost all of the extant warnings in Vapor, and clean up some issues in the tests, which can now run fully parallelized. There are no functional changes. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.87.0...4.87.1
4.87.0 - Add public initializer for `XCTHTTPRequest`
6 days ago
## What's Changed Add public initializer for `XCTHTTPRequest` by @hsharghi in #3106 > Add public initializer for `XCTHTTPRequest` > This PR will fix https://github.com/vapor/vapor/issues/3105 > > Add public initializer for `XCTHTTPRequest` ## New Contributor - @hsharghi made their first contribution in #3106 πŸŽ‰ ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.86.2...4.87.0
4.86.2 - Make Async Request Body actually work
3 weeks ago
## What's Changed Make Async Request Body actually work by @0xTim in #3096 > The existing implementation of adding an `AsyncSequence` to `Request.Body` had two issues: > > - it didn’t ensure code was being called from the correct event loop which broke `Sendable` guarantees and was unsafe > - it would hit a precondition failure in the implementation if backpressure was triggered because the initial state was not accounted for > > This fixes that ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.86.1...4.86.2
4.86.1 - Create a thread pool of System.coreCount rather than 64 when initializing an Application
3 weeks ago
## What's Changed Create a thread pool of System.coreCount rather than 64 when initializing an Application by @dfed in #3092 > Following [this recommendation](https://github.com/vapor/vapor/pull/3091#issuecomment-1778078831), this PR simply changes the default number of cores when initializing an `Application` from 64 to the current number of cores. > > This means that initializing an `Application` with default arguments now spins up 2x the number of threads as cores on device. We’ll create `System.coreCount` threads when instantiating the `threadPool`, and another `System.coreCount` threads when we instantiate the `eventLoopGroup`. > > 2x `System.coreCount` is still *way* better than `System.coreCount + 64` on older devices, so while this PR does not directly address #3003, it does reduce total thread usage on `init`. ## New Contributor - @dfed made their first contribution in #3092 πŸŽ‰ ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.86.0...4.86.1
4.86.0 - Make Request Sendable
3 weeks ago
## What's Changed Make Request Sendable by @0xTim in #3093 > Final stage of Vapor’s `Sendable` journey as `Request` is now `Sendable`. > > There should be no more Sendable warnings in Vapor, even with complete concurrency checking turned on. ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.85.1...4.86.0
4.85.1 - Remove Sendable requirements on Authenticatable
3 weeks ago
## What's Changed Remove Sendable requirements on Authenticatable by @0xTim in #3095 > Removes the requirement for `Authenticatable` types to be `Sendable` which was causing issues with Fluent models (and any reference types) and wasn’t solvable in a non-breaking way. > > This uses an unsafe box to wrap the `Authenticatable` types which removes compiler checking on usage of the box but should not be an issue due to the way Vapor’s auth is implemented ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.85.0...4.85.1
4.85.0 - Sendable Response
3 weeks ago
## What's Changed Sendable Response by @0xTim in #3082 > Make `Response` `Sendable` ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.84.6...4.85.0
4.84.6 - Handle query parameters in FileMiddleware redirects
6 weeks ago
## What's Changed Handle query parameters in FileMiddleware redirects by @Captain-Kirkie in #3077 > Correctly handle query parameters when using the redirect functionality in `FileMiddleware`. ## New Contributor - @Captain-Kirkie made their first contribution in #3077 πŸŽ‰ ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.84.5...4.84.6
4.84.5 - Update SwiftNIO HTTP/2 for CVE-2023-44487
7 weeks ago
## What's Changed Update SwiftNIO HTTP/2 for CVE-2023-44487 by @0xTim in #3083 > See [the forum post](https://forums.swift.org/t/swift-nio-http2-security-update-cve-2023-44487-http-2-dos/67764/1) for more details ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.84.4...4.84.5
4.84.4 - Fix NIOLoopBound issues
7 weeks ago
## What's Changed Fix NIOLoopBound issues by @0xTim in #3081 > Fixes a number of issues where `NIOLoopBound` and `NIOLoopBoundBox` were used without ensuring we were on the correct event loop before accessing them. This could lead to precondition crashes ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.84.3...4.84.4
iOS macOS watchOS tvOS linux macOS iOS
vapor/fluent 4.8.0
Vapor ORM (queries, models, and relations) for NoSQL and SQL databases
⭐️ 1,256
πŸ•“ 32 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.
Update min Swift version to 5.6 and make platform versions consistent
32 weeks ago
###### _This patch was authored and released by @gwynne._
Update to match FluentKit's declared version minimums
36 weeks 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
41 weeks 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
2 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) ```
Add default implementation for CredentialsAuthenticatable
2 years ago
###### _This patch was authored and released by @0xTim._ Improves the experience for users writing web applications. Adds a `ModelCredentialsAuthenticator` to automatically conform `Model` types to `CredentialsAuthenticatable` and provide a middleware to use. This can be used when logging in users via a web form, as shown in the tests. This also backfills some tests for ModelSessionAuthenticatable. Also fixes a bug where the SessionAuthenticator was not using the provided `DatabaseID` Resolves #710 Resolves #701 Docs here vapor/docs#576
iOS macOS watchOS tvOS linux macOS iOS
vapor/redis 5.0.0-alpha.2.2
Vapor provider for RediStack
⭐️ 462
πŸ•“ 22 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
22 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
22 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
23 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
35 weeks 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
42 weeks 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
48 weeks 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
1 year 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
1 year 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.11.0
πŸ’» APIs for creating interactive CLI tools.
⭐️ 425
πŸ•“ 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.
4.11.0 - Add a public initializer to LogRecord
1 week 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
1 week 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
3 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
3 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
3 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
6 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
4.8.1 - Flush stdout
8 weeks ago
## What's Changed Flush stdout by @0xTim in #187 > Fixes an issue where stdout was not flushed after a print causing logs to be delayed ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.8.0...4.8.1
4.8.0 - Implement LoggerFragment system for customizing logger output
10 weeks ago
## What's Changed Implement LoggerFragment system for customizing logger output by @semicoleon in #182 > This PR refactors `ConsoleLogger` to break out the functionality into smaller pieces. The goal of this is to allow end users to customize the log output without having to deal with writing a logger themselves. Things like adding a timestamp at the beginning of the log message can be accomplished without having to re-write any of the logic inside `ConsoleKit` by writing a custom `LoggerFragment`. Additionally, since the actual code for constructing the log message is so short, copying it to make modifications inside the message isn’t as much of a commitment as copying the whole `ConsoleLogger` implementation is. > > This change would at least partially address #140 by making it easier to customize when metadata, etc is logged. > > This change also incorporated moving from the deprecated `Logging.LogHandler` protocol method to the newer one which includes the source parameter ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.7.0...4.8.0
4.7.0 - Long-overdue package cleanup
14 weeks ago
## What's Changed Long-overdue package cleanup by @gwynne in #183 > - Update minimum Swift version to match Vapor (5.6) > - Fix up CI > - Clean up README > - Fix platform conditions > - Remove obsolete Swift version conditions > - Remove obsolete Concurrency guards (back-deployment works) > - Add API docs customization ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/console-kit/compare/4.6.0...4.7.0
Add MetadataProvider support
44 weeks ago
###### _This patch was authored by @MahdiBM and released by @0xTim._ This PR: * Adds `MetadataProvider` support to `ConsoleLogger`. * Makes it so the the package requires `swift-log` `1.5.1`+. * Fixes these warnings: ``` [ WARNING ] Attempted to set metadataProvider on ConsoleLogger that did not implement support for them. Please contact the log handler maintainer to implement metadata provider support. ```
iOS macOS watchOS tvOS linux macOS iOS
vapor/leaf 4.2.4
πŸƒ An expressive, performant, and extensible templating language built for Swift.
⭐️ 400
πŸ•“ 51 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.
Fix Algorithms Dependency Declaration
52 weeks 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
1 year 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
1 year 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
Remove `fatalError()` when using array for `Context`
2 years ago
###### _This patch was authored and released by @0xTim._ Using arrays for top-level `Context`s in Leaf is not support. This changes the behaviour of Leaf to throw an error instead of `fatalError`ing and taking down the app. Resolves #190
iOS macOS watchOS tvOS linux macOS iOS
vapor/jwt 4.2.2
Vapor JWT provider
⭐️ 308
πŸ•“ 35 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.
Add missing platform specifiers
35 weeks 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 } ```
Added a public initializer to Request.JWT
3 years ago
###### _This patch was authored and released by @grosch._ People couldn't make their own verifiers since `request` was internal.
Update to Vapor 4 GM
3 years ago
###### _This patch was authored by @gwynne and released by @tanner0101._ Updated for final Vapor 4.0.0 release, with (improved) tests passing (#119).
Updates audience claim check for apple/google
3 years ago
###### _This patch was authored by @grosch and released by @gwynne._ Updated based on the recent changes to JWT-Kit
iOS macOS watchOS tvOS linux macOS iOS
vapor/toolbox 18.7.4
Simplifies common command line tasks when using Vapor
⭐️ 267
πŸ•“ 6 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.4 - Change commit message in new project generation.
6 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
7 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
7 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
30 weeks ago
###### _This patch was authored and released by @0xTim._ We need to support 5.5 for Homebrew
Update Toolbox for new Templates
30 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
Allow dynamic file names in template manifest
1 year ago
###### _This patch was authored by @s-k and released by @0xTim._ By adding `dynamic_name` parameters to files or folders in manifest.yml, their names in the created package can depend on variables or the name of the new package. Example: ``` - folder: xcschemes files: - file: Server.xcscheme dynamic_name: "{{name}}.xcscheme" ``` In this case, the original name of the file in the template repository is 'Server.xscheme'. In the created package, its name will be '\[Package Name\].xscheme'. The dynamic file name may also depend on variables defined in manifest.yml.
macOS linux macOS iOS
vapor/postgres-nio 1.19.1
🐘 Non-blocking, event-driven Swift client for PostgreSQL.
⭐️ 255
πŸ•“ 2 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.19.1
2 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
4 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
12 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
13 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
18 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
PostgresNIO 1.16.0
24 weeks ago
### Semver Minor * Add many, many missing types to `PostgresDataType` (#371) * Add `PSQLError` `debugDescription` (#372) **Full Changelog**: https://github.com/vapor/postgres-nio/compare/1.15.0...1.16.0
PostgresNIO 1.15.0
25 weeks ago
### SemVer Minor * Make PostgresCodable typealias public (https://github.com/vapor/postgres-nio/pull/363) * Add support for int4range, int8range, int4range[], int8range[] (https://github.com/vapor/postgres-nio/pull/330 by @rausnitz) ### SemVer Patch * Decode `.bpchar` as `String` (https://github.com/vapor/postgres-nio/pull/368) * Rename generic type from B to Bound in PostgresRange (https://github.com/vapor/postgres-nio/pull/367) ### Other Changes * Various cleanups to CI (https://github.com/vapor/postgres-nio/pull/359, https://github.com/vapor/postgres-nio/pull/362, https://github.com/vapor/postgres-nio/pull/369) * Add `testSelectActiveConnection` test (https://github.com/vapor/postgres-nio/pull/364) * Add Postgres 15 to docker compose (https://github.com/vapor/postgres-nio/pull/366 by @marius-se) ### New Contributors * @marius-se made their first contribution in https://github.com/vapor/postgres-nio/pull/366 **Full Changelog**: https://github.com/vapor/postgres-nio/compare/1.14.2...1.15.0
PostgresNIO 1.14.2
29 weeks ago
Address CVE-2023-31136 - PostgresNIO processes unencrypted bytes from man-in-the-middle. See the [CVE-2023-31136 security advisory](https://github.com/vapor/postgres-nio/security/advisories/GHSA-9cfh-vx93-84vv) for details. Thanks to PostgreSQL's Tom Lane <[[email protected]](mailto:[email protected])> for reporting this issue!
PostgresNIO 1.14.1
29 weeks ago
### SemVer Patch * Use `#fileID` and `#filePath` instead of `#file` (#348, #355) * Fix crash in row streams that are cancelled and timeout (#347, #351, #353) * Add PostgresRow decoding tests, reformat Package.swift (#346) ### Other Changes * Update README (#344, #345) **Full Changelog**: https://github.com/vapor/postgres-nio/compare/1.14.0...1.14.1
PostgresNIO 1.14.0
31 weeks ago
### SemVer Minor * Make `PostgresBindings.append(PostgresData)` public (#332) * Drop support for Swift 5.5 (#336) * Mark `RowDescription.Column` (#338) * Make `PSQLError` public (#342) * Deprecating PostgresDataConvertible, PostgresMessageType (#313) * Add support for UDS and existing Channels (#335) ### SemVer Patch * Require new swift-nio versions (#343) ### Other changes * Update CI in preparation for bumping to 5.6 min version (#337) **Full Changelog**: https://github.com/vapor/postgres-nio/compare/1.13.0...1.14.0
iOS macOS watchOS tvOS linux macOS iOS
vapor/websocket-kit 2.14.0
WebSocket client library built on SwiftNIO
⭐️ 249
πŸ•“ 26 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.
Pass a copy of the control frame buffer to ping/pong callbacks
26 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
26 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
26 weeks ago
Reverts 2.12.0, in order to maintain compatibility with Swift 5.6 users.
Sendable Take 2
26 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)"
26 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
26 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
26 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
28 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`
32 weeks 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`.
Do not add a `Content-Type` header to the HTTP upgrade request
38 weeks ago
###### _This patch was authored by @fumoboy007 and released by @0xTim._ ⚠️ **WARNING**: This release removes the hard-coded `content-type` header from the upgrade request. If you were relying on this you'll need to manually add it now, but since there's no body it shouldn't be required [Some](https://alpaca.markets/docs/api-references/trading-api/streaming/) WebSocket servers use the `Content-Type` header to determine which serialization format to use for its WebSocket messages. However, `HTTPInitialRequestHandler` [adds](https://github.com/vapor/websocket-kit/blob/62f568aa9d338aa33790534fa7b5800976f93af8/Sources/WebSocketKit/HTTPInitialRequestHandler.swift#L24) a hard-coded `Content-Type: text/plain; charset=utf-8` header to the WebSocket client’s HTTP upgrade request, so the client cannot customize the header value. Given that the HTTP upgrade request body is empty, there is no need for `HTTPInitialRequestHandler` to add the `Content-Type` header. This will allow the client to add their own, if desired. Fixes #126.
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
3 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
4 years ago
New: - Publicize `HTTPMessageDecoder.decode` extension. (#359) - Added support for decoding `jsonAPI` media type. (#359)
HTTP 3.1.11
4 years ago
Fixed: - Silenced a Swift 5 warning. (#351)
HTTP 3.1.10
4 years ago
Fixed: - Fixed an issue that could cause unnecessary re-allocations during large file uploads. (#346)
HTTP 3.1.9
4 years ago
Fixed: - Fixed a bug that could cause cookies to be duplicated if added one-by-one. (#343)
HTTP 3.1.8
4 years ago
Fixed: - HTTP upgrade requests now forward bytes buffered during upgrade. (#324)
HTTP 3.1.7
4 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.1
🐬 Pure Swift MySQL client built on non-blocking, event-driven sockets.
⭐️ 210
πŸ•“ 20 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.1 - Add MySQL support for nested subpath (JSON) expressions
20 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
32 weeks ago
###### _This patch was authored and released by @gwynne._
Add `hostname` to `MySQLConnection.connect()`
32 weeks 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
1 year 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`.
Declare supported UNION features
1 year 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 MySQL's support. The increased SQLKit version requirement makes this a `semver-minor` change.
iOS macOS watchOS tvOS linux macOS iOS
vapor/sql-kit 3.28.0
*️⃣ Build SQL queries in Swift. Extensible, protocol-based design that supports DQL, DML, and DDL.
⭐️ 201
πŸ•“ 20 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.
3.28.0 - Add support for nested subpath (JSON) expressions
20 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
29 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
29 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
32 weeks ago
###### _This patch was authored and released by @gwynne._
Make SQLList's properties mutable
42 weeks 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.
Add support for varying syntax of SELECT locking clauses.
1 year ago
###### _This patch was authored and released by @gwynne._ The `FOR SHARE` syntax previously provided by adding `.for(.share)` to a `SELECT` query is specific to PostgreSQL. This update allows each database driver to specify the correct syntax for locking clauses - or to signal that it doesn't implement that functionality - via its `SQLDialect`. The default is to assume locking clauses are not supported. Because new public API is added to `SQLStatement` and `SQLDialect`, this update is `semver-minor`. PR for MySQL support: vapor/mysql-kit#310 PR for PostgreSQL support: vapor/postgres-kit#230 PR for SQLite support: <not required, SQLite does not support locking clauses>
Adds `LIMIT`, `OFFSET` and `ORDER BY` to Union results
1 year ago
###### _This patch was authored by @NeedleInAJayStack and released by @gwynne._ <!-- πŸš€ Thank you for contributing! --> <!-- Describe your changes clearly and use examples if possible. --> Previously it was not easy to do pagination on the result of `SELECT ... UNION queries`. For example: ```sql (SELECT * FROM "Table" WHERE "name" = 'first thing') UNION ALL (SELECT * FROM "Zone" WHERE "name" = 'second thing') LIMIT 5 OFFSET 3 ORDER BY "name" ``` This pull request adds `LIMIT`, `OFFSET`, and `ORDER BY` functionality to the `SQLUnion`/`SQLUnionBuilder`, primarily by copying over the `SQLSelect` and `SQLSubqueryClauseBuilder` implementations. I also have a protocol-based approach that reduces code copying but it comes with it's own smells. I'm happy to elaborate if desired. <!-- When this PR is merged, the title and body will be --> <!-- used to generate a release automatically. -->
UNION handles single entry
1 year ago
###### _This patch was authored by @NeedleInAJayStack and released by @gwynne._ <!-- πŸš€ Thank you for contributing! --> <!-- Describe your changes clearly and use examples if possible. --> This PR simplifies dynamically building UNION statements. To be specific, it loosens the restriction that a SQLUnion must contain multiple select statements. While this is common usage, it makes building up `UNION`s in client code difficult. For example, building up a UNION in a for loop is awkward right now: ```swift let ids = [1, 2, 3, ...] guard let firstId = ids.first else { ... } // Must manually short-circuit as a SQLSelectBuilder guard ids.count > 1 else { return sql.select.column("id").from("t1").where("id", .equals, firstId).all() } let unionBuilder = sql.union { select in select.column("id").from("t1").where("id", .equals, firstId) } for id in ids[1..<ids.count] { unionBuilder.union(all: { select in select.column("id").from("t1").where("id", .equals, id) }) } return unionBuilder.all() ``` This PR removes the need for the commented `guard` in the code above. It also improves code safety by removing a runtime fatal error condition. <!-- When this PR is merged, the title and body will be --> <!-- used to generate a release automatically. -->
iOS macOS watchOS tvOS linux macOS iOS
vapor/fluent-kit 1.45.0
Swift ORM (queries, models, and relations) for NoSQL and SQL databases
⭐️ 187
πŸ•“ 10 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.45.0 - Allow pivot editing closures to be async and throwing.
10 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()
14 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
17 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
18 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
1.43.1 - Handle aggregate types a very tiny bit better
18 weeks ago
###### _This patch was released by @gwynne._ ## What's Changed Handle aggregate types a very tiny bit better by @gwynne in #569 > This just adds explicit forwarding of the generic `Result` parameter of the two `QueryBuilder.aggregate()` variants which weren’t doing so already. It was already being implicitly forwarded due to type inference, but better to do so explicitly. > > Also adds notes to the `sum()` and `average()` sets of methods warning that the `Field.Value` return types are not always correct (usually only causes problems with Postgres) and giving the workaround. This is related to #379 and vapor/fluent-postgres-driver#166 … ## Reviewers Thanks to the reviewers for their help: - @dannflor **Full Changelog**: https://github.com/vapor/fluent-kit/compare/1.43.0...1.43.1
1.43.0 - Leverage the new support for nested path expressions in SQLKit
20 weeks ago
###### _This patch was authored and released by @gwynne._ Fluent now takes generic advantage of the new support added by vapor/sql-kit#169 when generating nested subpath expressions. (Unfortunately, Fluent has never actually invoked this code path to begin with, except via an explicit call to `.sql(json:_:)`, so it doesn't change much at the moment. However, this would always have been a prerequisite to make the real support for it in Fluent's API actually work, so it's a step in the right direction.) `SQLJSONColumnPath` is now deprecated in favor of using SQLKit's new `SQLNestedSubpathExpression`. https://github.com/vapor/fluent-kit/pull/572
Explicitly log migration errors
24 weeks ago
###### _This patch was authored and released by @gwynne._ This ensures errors thrown during migration (both prepare and revert) are fully logged regardless of the behavior of calling code.
Enable using the attached model during pivot editing
25 weeks ago
###### _This patch was authored and released by @gwynne._ When using `Siblings.attach(_:on:_:)` with an editing closure, this code would historically crash with a fatal error: ```swift planet.$tags.attach([tag1, tag2], on: database) { pivot in print(pivot.tag.name) // fatal error: Parent relation not eager loaded, use $ prefix to access: Parent<PlanetTag, Tag>(key: "tag_id") } ``` The `attach()` methods now provide the "right-hand" side of the relation (e.g. `left.$siblings.attach([right1, right2])`) on the pivot model passed to the editing closure. Unfortunately, due to limitations of Fluent's design and of property wrappers, it is not possible to also provide the "left-hand" side of the relation, but this is usually less of a concern. The expected use case for having the right-hand model available is to be able to get data from the right-hand model for setting properties of the pivot when attaching an array of siblings in one call. Without this change, this was only possible by matching the right-hand model's ID with one from the original input array. (This being said, this change affects the single-model version of `attach()` as well, since there is no drawback to doing so.) This is a solely additive change; it has no effect whatsoever on what data goes into the database, and does not incur any additional speed or memory overhead.
Generate deterministic column ordering in insert and update queries
29 weeks ago
###### _This patch was authored and released by @gwynne._ This is an updated version of #556 by @rausnitz which updates the generation of `INSERT` queries to be both deterministic and more performant by eliding pointless repetition of the Fluent -> SQL conversion of the field list. Additional kudos for @rausnitz for his enthusiasm, which inspired me to take another hard look at the existing logic! Closes #543
Improved migration performance, better error reporting, and other cleanups
29 weeks ago
###### _This patch was authored and released by @gwynne._ - `FluentError` is now `CustomDebugStringConvertible` - Fixes #542 by conditionally conforming `LoggingOverrideDatabase` to `SQLDatabase` - Migration no longer spends time checking for prerelease migration names or allocating excess futures - The `Mirror` bypass is now enabled for Swift 5.9 - Fluent benchmark suite now has much better error handling - Fluent benchmarks now run ~5-10% faster (up to 15% for SQL databases)
iOS macOS watchOS tvOS linux macOS iOS
vapor/postgres-kit 2.12.2
🐘 Non-blocking, event-driven Swift client for PostgreSQL.
⭐️ 164
πŸ•“ 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.
2.12.2 - Enable libpq-compatible "postgresql" URL schemes
15 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
15 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
17 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
20 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
24 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
28 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`
28 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.
Remove all use of deprecated PostgresNIO APIs
29 weeks ago
###### _This patch was authored and released by @gwynne._ This is a major cleanup pass that deprecates `PostgresDataEncoder`, `PostgresDataDecoder`, and `PostgresConfiguration` in favor of working with the newer, better-designed APIs now available from PostgresNIO. As a side effect of this work, the minimum Swift version has been bumped to 5.7. Every effort has been made to maintain backwards-compatible behavior whenever possible.
Require PostgresNIO 1.14.2 for CVE-2023-31136 fix
29 weeks ago
###### _This patch was authored and released by @gwynne._
Update min Swift version to 5.6 and make platform versions consistent
32 weeks ago
###### _This patch was authored and released by @gwynne._
iOS macOS watchOS tvOS linux macOS iOS
vapor/queues 1.13.0
A queue system for Vapor.
⭐️ 150
πŸ•“ 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.
1.13.0 - Misc cleanups
16 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
35 weeks ago
###### _This patch was authored and released by @gwynne._ Match Vapor's support
Add async job hooks
43 weeks 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.
⭐️ 141
πŸ•“ 20 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
20 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
28 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
28 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
28 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
29 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
29 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
32 weeks ago
###### _This patch was authored and released by @gwynne._
Update to match FluentKit's declared version minimums
36 weeks 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
3 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
4 years ago
Fixed: - Trying to parse a malformed RSA key no longer causes a fatalError (#87 - #88)
Crypto 3.3.2
4 years ago
Fixed: - Removed dependency on private `CNIOOpenSSL` package. (#81)
Crypto 3.3.1
4 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/jwt-kit 4.13.1
πŸ”‘ JSON Web Token (JWT) signing and verification (HMAC, RSA, ECDSA) with support for JWS and JWK
⭐️ 131
πŸ•“ 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.
4.13.1 - Increase permitted range for crypto-kit dependency
7 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
19 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
20 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:)`
20 weeks ago
###### _This patch was authored by @nnsnodnb and released by @0xTim._ Update JWKS `find(identifier:type:)` to use better Swift algorithms for matching
Add optional org_id field to AppleIdentityToken
23 weeks ago
###### _This patch was authored by @RanLearns and released by @gwynne._ ### **Motivation and Reasoning** When working with Managed Apple IDs (schools and business) there can be a need to decode an additional field of a user's org_id when they sign in.
Update the vendored BoringSSL
25 weeks ago
###### _This patch was authored and released by @gwynne._ Update the vendored BoringSSL to the latest. This also brings in the latest updates to the vendoring scripts themselves from upstream, updates CI (what? In a PR from Gwynne? Say it ain't so!), and bumps the minimum Swift version to 5.6 to be in line with Vapor.
JWS/x5c support with ES256 keys
35 weeks ago
###### _This patch was authored by @WFT and released by @gwynne._ <!-- πŸš€ Thank you for contributing! --> <!-- Describe your changes clearly and use examples if possible. --> Verify JWS tokens using x5c header parameters (ES256 keys only right now). This PR is based on @0xTim’s work in #75, but uses the X509_STORE/X509_verify_cert API rather than re-implementing that logic in Swift. <!-- When this PR is merged, the title and body will be --> <!-- used to generate a release automatically. --> Details on x5c: https://www.rfc-editor.org/rfc/rfc7515#section-4.1.6
Add support for Octet Key Pairs with the EdDSA algorithm using the ED25519 curve
44 weeks ago
###### _This patch was authored by @mgratzer and released by @0xTim._ This implements support for Octet Key Pairs ([RFC8037](https://www.rfc-editor.org/rfc/rfc8037.html#section-2)) with the EdDSA algorithm and ED25519 curves. It closes #50.
Add `JWTSigner.unsecuredNone`
1 year ago
###### _This patch was authored by @baarde and released by @0xTim._ This PR adds support for the "none" algorithm described in [Section 6 of RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519#section-6).
Add experimental watchOS support
1 year ago
###### _This patch was authored by @thebabufrik and released by @0xTim._ Adds experimental watchOS support by providing a watchOS platform to match the minimum version of the dependencies so it will compile
iOS macOS watchOS tvOS linux macOS iOS
vapor/multipart-kit 4.5.4
🏞 Parses and serializes multipart-encoded data with Codable support.
⭐️ 124
πŸ•“ 32 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.
Fix recursion loop in decoding of a `SingleValueContainer`
32 weeks 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
35 weeks 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)
Support nested multipart encoding
2 years ago
###### _This patch was authored and released by @siemensikkema._ Add encoding and decoding support for nested objects (#57) In order to avoid overflows by malicious actors there is a maximum nesting depth associated with `FormDataDecoder`. It defaults to `8` but is configurable in the initializer like so: `FormDataEncoder(nestingDepth: 8)`. This update also deprecates `MultipartError`.
iOS macOS watchOS tvOS linux macOS iOS
vapor/routing-kit 4.8.2
🚍 High-performance trie-node router.
⭐️ 118
πŸ•“ 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.
4.8.2 - Initial Sendable Work
3 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
6 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()`
14 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
34 weeks 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
35 weeks 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
36 weeks 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/)
Clarify "same route with different parameter names" error message
1 year ago
###### _This patch was authored and released by @gwynne._ An attempt to improve the error message for this unusual case. Also ensures the error appears in release builds.
iOS macOS watchOS tvOS linux macOS iOS
vapor/apns 4.0.0
Helpful extensions and abstractions for using APNSwift
⭐️ 97
πŸ•“ 17 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.
Updates to latest APNS
17 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
28 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/)
async/await
2 years ago
###### _This patch was authored and released by @0xTim._ Adds `async` APIs to `Application.APNS` and `Request.APNS` to match existing `EventLoopFuture` APIs
iOS macOS
vapor/service 1.0.2
πŸ“¦ Dependency injection / inversion of control framework.
⭐️ 83
πŸ•“ 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.
Service 1.0.2
4 years ago
Fixed: - Silenced a Swift 5 warning. (#38)
Service 1.0.1
4 years ago
Fixed: - `ServiceType.makeService(_:)`'s internal variable was renamed to `container`. (#27)
Service 1.0.0
5 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
5 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
5 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
5 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
5 years ago
Service 1.0.0 Beta 2
5 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
5 years ago
Service 1.0.0 Beta 1
5 years ago
linux macOS iOS
vapor/mysql-nio 1.7.0
🐬 Non-blocking, event-driven Swift client for MySQL.
⭐️ 78
πŸ•“ 28 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.
Parse timestamp columns in text format. Fixes vapor/mysql-nio#71
28 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
28 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
32 weeks ago
###### _This patch was authored and released by @gwynne._
Add package minimum versions for all platforms
43 weeks 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
1 year 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).
Fix auth using empty password with MySQL 5.7
3 years ago
###### _This patch was authored and released by @gwynne._ The following changes have been made: - When using the `mysql_native_password` auth plugin (or when authenticating with MySQL 5.7 in general), an empty password is now correctly treated as specifying no password at all. Fixes https://github.com/vapor/fluent-mysql-driver/issues/195. - The `.CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA` capability, which improves and simplifies auth handling in some common cases, is now correctly supported and reported as such. - The unit tests now support the `MYSQL_USERNAME`, `MYSQL_PASSWORD`, `MYSQL_DATABASE`, and `MYSQL_PORT` env vars. - Small code cleanups.
iOS macOS watchOS tvOS linux macOS iOS
vapor/core SR-6922
🌎 Utility package containing tools for byte manipulation, Codable, OS APIs, and debugging.
⭐️ 76
πŸ•“ 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
3 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
4 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
4 years ago
Fixed: - `File.ext` now returns `nil` if the file does not have an extension. (#198)
Core 3.8.0
4 years ago
New: - Add `MediaType.jsonAPI`. (#202) Fixed: - Improve performance of `Future.flatten`. (#199)
Core 3.7.3
4 years ago
Fixed: - Got rid of the last two pesky warnings for Swift 5. (#197, #196)
Core 3.7.2
4 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
πŸ•“ 20 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
20 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
32 weeks 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`
1 year 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
πŸ•“ 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.
1.19.0 - Clean up and soft-deprecate AsyncKit
3 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
15 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
32 weeks ago
###### _This patch was authored and released by @gwynne._
Deprecate EventLoop.performWithTask() in favor of NIO's version
45 weeks ago
###### _This patch was authored and released by @gwynne._
Back deploy concurrency to older Apple Platforms
48 weeks 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
1 year 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
πŸ•“ 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.6.0 - Miscellaneous tidying
5 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
20 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
32 weeks ago
###### _This patch was authored and released by @gwynne._
Add experimental support for watchOS
39 weeks 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/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
5 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
5 years ago
New: - Use `Core.Reflectable` protocol. [Milestone](https://github.com/vapor/validation/milestone/6?closed=1)
Validation 2.0.0 RC 2
5 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
5 years ago
Validation 2.0.0 Beta 2
5 years ago
New: - Update to latest core dependency.
Validation 2.0.0 Beta 1.1
5 years ago
Validation 2.0.0 Beta 1
5 years ago
linux macOS iOS
vapor/sqlite-kit 4.4.1
Non-blocking SQLite client library with SQL builder built on SwiftNIO
⭐️ 55
πŸ•“ 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.4.1 - Make nil decoding handling for SQLiteRows consistent with the other drivers
5 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
10 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
20 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
32 weeks ago
###### _This patch was authored and released by @gwynne._
4.2.1
39 weeks 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
1 year 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).
Fix Package.swift to use release versions
3 years ago
###### _This patch was authored and released by @tanner0101._ Fixes the package's dependencies to require release versions (#89).
iOS macOS watchOS tvOS linux macOS iOS
vapor/sqlite-nio 1.8.3
Non-blocking wrapper for libsqlite3-dev using SwiftNIO
⭐️ 47
πŸ•“ 3 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.
1.8.3 - Embed sqlite amalgamation v3.44.1 source code
4 days 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
3 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
6 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
10 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
10 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
1.6.0 - Embed sqlite amalgamation v3.43.0 source code
13 weeks ago
## What's Changed Embed sqlite amalgamation v3.43.0 source code by @gwynne in #55 > Update embedded SQLite from 3.42.0 to 3.43.0 ([SQLite release notes](https://sqlite.org/releaselog/3_43_0.html)) > > Additional changes: > > - Renames the vendored `sqlite3.h` and `sqlite3.c` files to `sqlitenio_sqlite3.h` and `sqlitenio_sqlite3.c`. This will hopefully improve usability for anyone who has to deal with both a system SQLite and the embedded one in the same process. > - Cleaned up the script that does the vendoring ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-nio/compare/1.5.3...1.6.0
1.5.3 - Use platform condition instead of compilation condition in Package.swift
14 weeks ago
## What's Changed Use platform condition instead of compilation condition in Package.swift by @gwynne in #54 > This fixes cross-compilation issues ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/sqlite-nio/compare/1.5.2...1.5.3
Embed sqlite amalgamation v3.42.0 source code
27 weeks ago
###### _This patch was authored and released by @gwynne._ Update embedded SQLite from 3.41.2 to 3.42.0 ([SQLite release notes](https://sqlite.org/releaselog/3_42_0.html))
fix: Corrects possible leaking promise in `query`
28 weeks ago
###### _This patch was authored by @NeedleInAJayStack and released by @gwynne._ <!-- πŸš€ Thank you for contributing! --> <!-- Describe your changes clearly and use examples if possible. --> Similar to https://github.com/vapor/sqlite-nio/pull/44, this removes a leaking promise when calling `query` on an inactive thread pool. <!-- 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
32 weeks ago
###### _This patch was authored and released by @gwynne._
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
πŸ•“ 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.
Support rendering URLs
3 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
4 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
4 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
5 years ago
Fixed: - Re-added `ViewRenderer`. Milestone: [1.0.1](https://github.com/vapor/template-kit/milestone/5?closed=1)
TemplateKit 1.0.0
5 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
5 years ago
New: - Adds `isFirst` and `isLast` variables alongside `index` while using iterators.
linux macOS iOS
vapor/leaf-kit 1.10.2
πŸƒ An expressive, performant, and extensible templating language built for Swift.
⭐️ 41
πŸ•“ 35 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.
Add missing platform specifiers
35 weeks ago
###### _This patch was authored and released by @gwynne._ Match Vapor's support
Fix error message in loop syntax
37 weeks ago
###### _This patch was authored and released by @0xTim._ Syntax errors thrown from loops now show the correct error message!
add isEmpty tag
38 weeks 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
38 weeks 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/)
Fix warning from compiler issue in Swift 5.6
1 year ago
###### _This patch was authored and released by @0xTim._ Resolves a compiler warning introduced in Swift 5.6 Resolves #99
Ignore unfound import
2 years ago
###### _This patch was authored by @fananek and released by @0xTim._ This makes the renderer and serializer ignore imports in case no corresponding export has been found rather than erroring by default. This also adds a new configuration flag `ignoreUnfoundImports` to allow you to set the behaviour to error on non-existent imports Fixes #84
Fix variable ambiguity
2 years ago
###### _This patch was authored and released by @0xTim._ Fix variable ambiguity in the LeafSerializer introduced in 1.3.0 that causes build failures in some vesions of Swiftο»Ώ
iOS macOS watchOS tvOS 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.
3 years ago
Add support for encoding and decode URLs. Fixes #24
URLEncodedForm 1.0.7
3 years ago
Encodes reserved characters like `&` in URL-encoded form keys and values.
URL-Encoded Form 1.0.6
4 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
5 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
5 years ago
Fixed: - Fixed a warning about `fileprivate` extensions.
URL-Encoded Form 1.0.0
5 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
πŸ•“ 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.
DatabaseKit 1.3.3
4 years ago
Fixed: - `KeyedCache.get(_:)` is no longer internal. (#50, #57)
DatabaseKit 1.3.2
4 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
5 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
5 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
5 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.
⭐️ 22
πŸ•“ 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.
Work around dependency conflict in latest DNSClient
27 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
29 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
41 weeks 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
1 year 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
⭐️ 20
πŸ•“ 26 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
26 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
26 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
35 weeks 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.
2 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.
2 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
2 years ago
Please see the [docs](https://docs.vapor.codes/4.0/queues/) for using queues.
Use Redis v4 release
2 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
3 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
πŸ•“ 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.
First initial release
5 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
3 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
3 years ago
Updates package requirements. This patch was authored and released by @tanner0101.
RedisStack Alpha 7 updates
3 years ago
Updates to RedisStack 1.0.0 Alpha 7 with support for `Logger` passing (#26)
RedisKit 1.0.0 Beta 2
3 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