Tanner
Tanner
Adds helpers for working with `content-encoding` and `accept-encoding` headers (#2465). - Adds `HTTPHeaders.acceptEncoding`. ```swift // Accept gzip and deflate encodings. req.headers.acceptEncoding = [.gzip, .deflate] // Check if request accepts gzip....
Refactors `Environment` to be more explicit about how it is initialized. Addresses https://github.com/vapor/vapor/issues/2385
Allow connecting to a WebSocket server via Unix Domain Sockets.
Carrying on conversations in #2383, #2384, and #2432. Specifically https://github.com/vapor/vapor/pull/2432#issuecomment-656902404 and https://github.com/vapor/vapor/pull/2432#issuecomment-656914668. The square bracket syntax for nesting query string data is not ideal. Since the brackets themselves must be...
It would be great to be able to route by more aspects than just HTTP method / URI segments in a performant way. Some useful parts of the HTTP request...
Attempting to use services like `app.sessions` after the application has been shutdown yields unhelpful errors like: ``` Fatal error: Sessions not configured. Configure with app.sessions.initialize(): file ``` These services should...
Add a `contains` method to ContentContainer and QueryContainer for detecting whether or not the given key is present. This is difficult to do otherwise as `Codable` treats missing keys and...
Provide access to the underlying NIO channel context `ByteBufferAllocator` via `Request`.
Add example + test case of dynamic streaming response using chunked transfer encoding.
https://github.com/vapor/vapor/pull/2357 refactored Vapor's streaming request body handling logic into a state machine. `RequestState` should get a similar refactoring to improve testability and code readability.