profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/vapor/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Vapor vapor NYC vapor.codes Creating modular server side software with Swift.

vapor/fluent 1105

Vapor ORM (queries, models, and relations) for NoSQL and SQL databases

vapor/console-kit 295

💻 APIs for creating interactive CLI tools.

vapor/docs 273

📖 Documentation markdown for all Vapor packages.

vapor/http 225

🚀 Non-blocking, event-driven HTTP built on Swift NIO.

vapor/api-template 131

💧 A starting point for Vapor APIs.

vapor/fluent-kit 108

Swift ORM (queries, models, and relations) for NoSQL and SQL databases

vapor/fluent-postgres-driver 101

🐘 PostgreSQL driver for Fluent.

vapor/apns 62

Helpful extensions and abstractions for using APNSwift

vapor/fluent-mysql-driver 62

🖋🐬 Swift ORM (queries, models, relations, etc) built on MySQL.

vapor/core 61

🌎 Utility package containing tools for byte manipulation, Codable, OS APIs, and debugging.

created tagvapor/ci

tagv0.1

Support files and configurations for Vapor's CI

created time in an hour

release vapor/ci

v0.1

released time in an hour

push eventvapor/ci

Gwynne Raskind

commit sha 9ff2184b6aff368279617f746b9e567fada2e475

Initial conversion to use of composite GH actions

view details

push time in an hour

startedvapor/vapor

started time in 2 hours

PR opened vapor/postgres-nio

Reviewers
Batch rows for consumption enhancement part of a series

Motivation

To allow faster processing of incoming DataRows, we should batch them up in channelRead events and forward them as a batch for consumption in PSQLRowStream. This work is the foundation for AsyncSequence support in the future.

Modifications

  • Extends ExtendedQueryStateMachine to use RowStreamStateMachine internally
  • Refactor PSQLRowStream to work with batches of rows.
+590 -353

0 comment

9 changed files

pr created time in 2 hours

push eventvapor/postgres-nio

Fabian Fett

commit sha 419c20b40fcfb7416de1ba8238b4a86ccaafc84c

Add PSQLFrontendMessageDecoder (#178) ### Motivation In tests we would like to use `EmbeddedChannel`, if we decode and encode in the `PSQLChannelHandler` using the `NIOSingleStepByteToMessageDecoder`, we need to decode messages the handler wrote to the channel from bytes. ### Changes - Add `PSQLFrontendMessageDecoder` - Add `ReverseByteToMessageHandler`

view details

push time in 3 hours

PR merged vapor/postgres-nio

Add PSQLFrontendMessageDecoder enhancement part of a series

Motivation

In tests we would like to use EmbeddedChannel, if we decode and encode in the PSQLChannelHandler using the NIOSingleStepByteToMessageDecoder, we need to decode messages the handler wrote to the channel from bytes.

Changes

  • Add PSQLFrontendMessageDecoder
  • Add ReverseByteToMessageHandler

Notes

The changes are mostly in the test target. Enabling easier tests in the future.

+211 -3

0 comment

3 changed files

fabianfett

pr closed time in 3 hours

PullRequestReviewEvent

issue closedvapor/postgres-kit

PostGIS "geometry" type

Moved here from the fluent-kit repo.

I have a PSQL database with the PostGIS extension installed, and I am trying to add a geometry type column in a Fluent model and migration.

A geometry column can have any of the values of the picture at the end, but I plan on using only one type of geometry in a column (point, linestring, polygon, etc...). I'm pretty lost on how to add thisgeometry type to the migration using the .custom(Any) type. I can add the data just fine using Strings, but I would like to get the column type correct on the migrations too.

Hope someone can point me to the right direction. Thanks!

Column in PSQL (could be a general geometry one to allow multiple types of geometries). image

Sample value: image

From the PostGIS documentation: http://postgis.net/workshops/postgis-intro/geometries.html

image

closed time in 8 hours

codingmanu

pull request commentvapor/mysql-nio

Clean up the ByteBuffer utility methods

These changes are now available in 1.3.4

gwynne

comment created time in 8 hours

created tagvapor/mysql-nio

tag1.3.4

🐬 Non-blocking, event-driven Swift client for MySQL.

created time in 8 hours

release vapor/mysql-nio

1.3.4

released time in 8 hours

push eventvapor/mysql-nio

Gwynne Raskind

commit sha 5b0f3775e5793c6e35f224733f3276163aacd096

Clean up MySQL's copy of some ByteBuffer utilities - make readNullTerminatedString() much more efficient, make the write*() methods return the length written as they should, simplified the read and write methods for length-encoded values, removed a couple of unneeded/unused utilities. (#65)

view details

push time in 8 hours

delete branch vapor/mysql-nio

delete branch : bytebuffer-cleanup

delete time in 8 hours

PR merged vapor/mysql-nio

Reviewers
Clean up the ByteBuffer utility methods enhancement semver-patch
  • 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.
+35 -70

1 comment

2 changed files

gwynne

pr closed time in 8 hours

pull request commentvapor/mysql-nio

Clean up the ByteBuffer utility methods

Overriding CI failures and merging. The CI failures are a separate issue that need to be addressed elsewhere.

gwynne

comment created time in 8 hours

push eventvapor/multipart-kit

Siemen Sikkema

commit sha 6e643d604d43b880caa3641256465c32c5a97458

Add more content to the Readme. (#73) * Add more content to the Readme. * Bump supported Ubuntu version

view details

push time in 9 hours

delete branch vapor/multipart-kit

delete branch : feature/readme

delete time in 9 hours

push eventvapor/multipart-kit

Siemen Sikkema

commit sha df545a16fc2904c8d1fecf1f1c2500a4e584401f

Redesign FormDataEncoder and FormDataDecoder (#70) * Use lets in test struct * Refactor FormDataDecoder Refactor implementation to more closely follow the intended usage and therefore support, among other things, decoding top level optionals. Removes `fatalError`s in favor of (presumably) intended implementations. - add support for passing in `userInfo` - add test for decoding optional * Remove invalid access modifiers * Complement and correct API docs * Refactor Decoding and Encoding logic * Remove leftover code and fix build * Add missing `self` to support Swift < 5.4 * Make `userInfo` public

view details

Siemen Sikkema

commit sha 30f53439b52587b016a5e5b3dce7f50f686681be

Support Indexed Arrays (#71) * Use lets in test struct * Refactor FormDataDecoder Refactor implementation to more closely follow the intended usage and therefore support, among other things, decoding top level optionals. Removes `fatalError`s in favor of (presumably) intended implementations. - add support for passing in `userInfo` - add test for decoding optional * Remove invalid access modifiers * Complement and correct API docs * Refactor Decoding and Encoding logic * Remove leftover code and fix build * Add missing `self` to support Swift < 5.4 * Make `userInfo` public * Add support for indexed arrays

view details

siemensikkema

commit sha 9b29b67743aec4313440f2802e1a2d20daa191b4

Add more content to the Readme.

view details

siemensikkema

commit sha 3470d22344207a169b1f6720300e8ad792818de4

Bump supported Ubuntu version

view details

siemensikkema

commit sha 2f06450ac97435d45280e6141df2c9c38cb5c1d7

Use swift-collections

view details

push time in 9 hours

push eventvapor/multipart-kit

Siemen Sikkema

commit sha df545a16fc2904c8d1fecf1f1c2500a4e584401f

Redesign FormDataEncoder and FormDataDecoder (#70) * Use lets in test struct * Refactor FormDataDecoder Refactor implementation to more closely follow the intended usage and therefore support, among other things, decoding top level optionals. Removes `fatalError`s in favor of (presumably) intended implementations. - add support for passing in `userInfo` - add test for decoding optional * Remove invalid access modifiers * Complement and correct API docs * Refactor Decoding and Encoding logic * Remove leftover code and fix build * Add missing `self` to support Swift < 5.4 * Make `userInfo` public

view details

Siemen Sikkema

commit sha 30f53439b52587b016a5e5b3dce7f50f686681be

Support Indexed Arrays (#71) * Use lets in test struct * Refactor FormDataDecoder Refactor implementation to more closely follow the intended usage and therefore support, among other things, decoding top level optionals. Removes `fatalError`s in favor of (presumably) intended implementations. - add support for passing in `userInfo` - add test for decoding optional * Remove invalid access modifiers * Complement and correct API docs * Refactor Decoding and Encoding logic * Remove leftover code and fix build * Add missing `self` to support Swift < 5.4 * Make `userInfo` public * Add support for indexed arrays

view details

siemensikkema

commit sha 9b29b67743aec4313440f2802e1a2d20daa191b4

Add more content to the Readme.

view details

siemensikkema

commit sha 3470d22344207a169b1f6720300e8ad792818de4

Bump supported Ubuntu version

view details

push time in 9 hours

startedvapor/vapor

started time in 9 hours

push eventvapor/multipart-kit

Siemen Sikkema

commit sha df545a16fc2904c8d1fecf1f1c2500a4e584401f

Redesign FormDataEncoder and FormDataDecoder (#70) * Use lets in test struct * Refactor FormDataDecoder Refactor implementation to more closely follow the intended usage and therefore support, among other things, decoding top level optionals. Removes `fatalError`s in favor of (presumably) intended implementations. - add support for passing in `userInfo` - add test for decoding optional * Remove invalid access modifiers * Complement and correct API docs * Refactor Decoding and Encoding logic * Remove leftover code and fix build * Add missing `self` to support Swift < 5.4 * Make `userInfo` public

view details

Siemen Sikkema

commit sha 30f53439b52587b016a5e5b3dce7f50f686681be

Support Indexed Arrays (#71) * Use lets in test struct * Refactor FormDataDecoder Refactor implementation to more closely follow the intended usage and therefore support, among other things, decoding top level optionals. Removes `fatalError`s in favor of (presumably) intended implementations. - add support for passing in `userInfo` - add test for decoding optional * Remove invalid access modifiers * Complement and correct API docs * Refactor Decoding and Encoding logic * Remove leftover code and fix build * Add missing `self` to support Swift < 5.4 * Make `userInfo` public * Add support for indexed arrays

view details

siemensikkema

commit sha 43b277dd61c6d5a54fc9d444e752ef147218d5bc

Merge main into feature/reorganize-tests

view details

push time in 9 hours

pull request commentvapor/multipart-kit

Support Indexed Arrays

These changes are now available in 4.4.0

siemensikkema

comment created time in 10 hours

release vapor/multipart-kit

4.4.0

released time in 10 hours

created tagvapor/multipart-kit

tag4.4.0

🏞 Parses and serializes multipart-encoded data with Codable support.

created time in 10 hours

push eventvapor/multipart-kit

Siemen Sikkema

commit sha 30f53439b52587b016a5e5b3dce7f50f686681be

Support Indexed Arrays (#71) * Use lets in test struct * Refactor FormDataDecoder Refactor implementation to more closely follow the intended usage and therefore support, among other things, decoding top level optionals. Removes `fatalError`s in favor of (presumably) intended implementations. - add support for passing in `userInfo` - add test for decoding optional * Remove invalid access modifiers * Complement and correct API docs * Refactor Decoding and Encoding logic * Remove leftover code and fix build * Add missing `self` to support Swift < 5.4 * Make `userInfo` public * Add support for indexed arrays

view details

push time in 10 hours

delete branch vapor/multipart-kit

delete branch : feature/support-indexed-arrays

delete time in 10 hours

PR merged vapor/multipart-kit

Support Indexed Arrays semver-minor

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!

+187 -27

0 comment

2 changed files

siemensikkema

pr closed time in 10 hours

issue closedvapor/multipart-kit

Unable to decode nested `multipart` array.

<!-- 🚀 Thank you for contributing! --->

Describe the bug

struct Payload: Content {
    struct NestedPayload: Content {
        let name: String
        let age: Int
    }
    let nestedPayload: [NestedPayload]
}

let encoder = FormDataEncoder()
let encoded = try encoder.encode(Payload(nestedPayload: [.init(name: "abc", age: 10),
                                                         .init(name: "def", age: 20)]),
                                 boundary: "-")
let decoder = FormDataDecoder()
let decoded = try decoder.decode(Payload.self, from: encoded, boundary: "-")

got output [ WARNING ] Value required for key 'nestedPayload.0.age'.

Environment

<!-- We must know your exact environment or it is very difficult to help. --> <!-- Hint: use vapor --version in the root directory of your Vapor project. -->

  • Vapor Framework version: 4.27.0
  • Multipart-Kit Framework version: 4.2.1
  • Vapor Toolbox version: 18.3.3
  • OS version: Mac OS 11.3

closed time in 10 hours

chocoford