Releases: vapor/multipart-kit
Optimize and simplify parser
This patch was authored by @siemensikkema and released by @0xTim.
Use more efficient parsing of multipart bodies to improve performance to near the level of the old C parser (~8% slower). Resolves #58 and replaces #59. Thanks to @edwellbrook for the initial test case and @weissi for help on parser performance 🙏🏻
Rewrite multipart parser in Swift
This patch was authored and released by @siemensikkema.
Rewrites parser in Swift and removes dependency on C library.
This also fixes an existing parsing bug where a nested multipart body would see its boundaries stripped of the "\r\n--" prefix. (replaces #56)
MultipartKit 4.0.0
With this release, MultipartKit is again extracted from Vapor itself so it can be used independently.
Docs:
https://docs.vapor.codes/4.0/content/
https://api.vapor.codes/multipart-kit/master/MultipartKit/
BUG FIX: Multipart/form-data crashed if data was missing
This patch was authored by @JaapWijnen and released by @siemensikkema.
Fix a crash in FormDataDecoderContext when the offset doesn't exist when parsing multipart form data ( vapor/vapor#2548 )
Fix date formatter availability in iOS
Adds iOS 10.0
to availability check for using ISO8601DateFormatter
(#48).
Fix MultipartParser off-by-one error
MultipartKit 4.0.0 Beta 2
- Enabled test discovery on Linux (#42)
Multipart 3.1.1
Makes Date.useISO8601ForMultipart
public so the behaviour can be changed.
Multipart 3.1.0
Date
now serializes as ISO8601 to multipart data. (#38)
If you rely on the old behavior of Date
serializing as Double
, you can disable this adding this line to your configure.swift
file.
Date.useISO8601ForMultipart = false
MultipartKit 4.0.0 Beta 1
This library has been renamed to MultipartKit
and rewritten on top of François Colas's streaming C multipart parser. This means its now possible to stream in large, multipart-encoded file uploads using very little system memory. Note that the form-data variant Encoder and Decoder still require the entire multipart payload to be in memory.
For some usage examples, check out the tests folder: https://github.com/vapor/multipart-kit/blob/master/Tests/MultipartKitTests/MultipartKitTests.swift