Releases: swhitty/FlyingFox
0.24.1 Restore podspec
0.24.0 Linux Abstract Namespace Addresses
What's Changed
- TimeoutError -> SocketError.timeout by @swhitty in #159
- Add support for unix "abstract namespace" addresses by @gregcotten in #160
- WinSock can't actually support abstract sockets at all... by @gregcotten in #161
Full Changelog: 0.23.0...0.24.0
0.23.0 Range Requests
What's Changed
- Swift 6.1 on github actions by @swhitty in #152
- [Windows] Call WSAStartup before WinSDK.socket(...) is called by @gregcotten in #153
- fix(header): add content-disposition header by @PLKHawaR in #154
- fix(header): include missing essential headers by @PLKHawaR in #155
- Update FileHTTPHandler to support partial range requests by @swhitty in #157
- Handle offset requests by @swhitty in #158
New Contributors
Full Changelog: 0.22.0...0.23.0
Ranged Requests
FileHTTPHandler
now supports range requests, responding with HTTP 206 Partial Content allowing for efficient streaming of media content:
await server.appendRoute("GET,HEAD /jaws", to: .file(named: "jaws.m4v"))
When clients request the route and provide a range
header
GET /jaws HTTP/1.1
Host: localhost
Range: bytes=41000-49999
The response return just the requests bytes;
HTTP/1.1 206 Partial Content
Content-Type: video/mp4
Content-Range: bytes 41000-49999/60000
Content-Length: 9000
Accept-Ranges: bytes
0.22.0 Windows compatibility
What's Changed
- WSMessage.close and WSCloseCode by @swhitty in #145
- Expose Socket.unlink(...) as public by @gregcotten in #147
- Get Windows to actually compile and pass some tests by @gregcotten in #148
- Many additional Windows fixes by @gregcotten in #149
New Contributors
- @gregcotten made their first contribution in #147
Full Changelog: 0.21.0...0.22.0
0.21.0 Fix Large Requests
Fixes the AsyncSequence
backing large HTTPRequest
body payloads. #140
UDP Socket & Android SDK Support
Full Changelog: 0.19.0...0.20.0
Fix WebSocket frames
Small bug fix release
-
#126 Fixes issue with 16bit WebSocket frames of (length >= 126). 🙏🏻 @kateinoigakukun
-
#125 Renames
HTTPServer.start()
->run()
for compatibly with with swift-service-lifecycle
Linux Static SDK Support / Fix Linking Issue
Fixes linking issue when archiving builds on Darwin platforms when using Xcode 16 (#122) 🙏🏻 @nneubauer
Adds initial support for static linux SDK (Musl) #121
Swift 6 Language Mode
Uses Swift 6 language mode when building with Xcode 16 (RC)
Makes EchoWSMessageHandler public #115 🙏🏻 @stefanomondino
Unit tests have been migrated to Swift Testing when available
Uses variation of lock from swift-mutex
Uses variation of withThrowingTimeout
from swift-timeout
Cocoapods support removed
New HTTPBodySequence
Swift 5.9+
Support for Swift 5.8 has been removed.
HTTPBodySequence
HTTPBodySequence
has had the underlying sequence replaced to consume less memory.
- Requests with body size < 2MB are now buffered on demand via
HTTPSharedReplaySequence
. These sequences can be iterated multiple times concurrently. - Requests with body size > 2MB are not buffered and can only be iterated a single time.
Configuration
HTTPServer.Configuration
is a new struct
containing all properties used to start HTTPServer
.
Remote Address
HTTPRequest.remoteAddress
allows handlers to receive the address and port of the remove client making the request.
HTTPRequest.remoteIPAddress
is also added as a convenience, preferring the client value from the X-Forwarded-For
header which is useful for handlers running behind a reverse proxy.
🙏🏻 @blaineam
watchOS Support
Support for watchOS was added #105, #98
🙏🏻 @NicoHinderling @noahsmartin
Windows fix
A bug was fixed within windows builds #104
🙏🏻 @bdashore3