- Return
Server
type fromstart_*
methods to get OS-assigned port. Will also eventually provide graceful shutdown options
- Bump gleam version requirement
- Use
erlang
application start module for clock
- Don't pull or
let assert
from websocket when more data is needed - Don't use
uri.parse
because it's a bit slow - Don't use the
request.set_<property>
methods, because I'm already setting basically everything and they are kinda slow - Support
permessage-deflate
WebSocket extension - Pull some stuff out of
mist
intogramps
and use its updated API - Allow returning multiple headers with the same name
- Currently there are no checks on which headers you do this with
- Internal API refactor along with (absolutely not ready) initial HTTP/2 "support" included but disabled
- Bumped some dependency versions
- Fix performance regression with
Date:
header
- Second pass at Server-Sent Events
- This API more closely follows the
gleam/otp/actor
API
- This API more closely follows the
- Parse
Host
header to sethost
andport
fields onRequest
- Bump
glisten
version - Remove deprecated
function.compose
usage - Support sending files over SSL
- This does not use
sendfile
as that's not supported - Currently, it will naively read the whole file into memory
- This does not use
- Changed error type returned from
mist.start_https
- This now checks for the presence of the key and certificate files
- Bump
glisten
version again! - First pass at support for Server-Sent Events
- Bump dep versions to get access to
Subject
fromglisten.serve(_ssl)
- Updated for Gleam v0.33.0.
- Log error from
rescue
in WebSocket handlers - WebSocket
Text
frame is now aString
, since the spec notes that this type of message must be valid UTF-8
- Lots of WebSocket changes around spec correctness (still not 100% there)
- Fixed a few bugs around WebSocket handlers and user selectors
- Fix regression in WebSocket handler
- Pass scheme to
after_start
to allow building valid URLs
- Pass WebSocket state to
on_close
handler - Fix socket active mode bug in WebSocket actor
- Update packages and change
bit_string
tobit_array
andbit_builder
tobytes_builder
- Remove WebSocket builder in favor of plain function
- Adds
on_init
andon_close
to WebSocket upgrade function - Fix an issue where websocket crashes on internal control close frame
- Upgrade to
glisten
v0.9
- Upgrade
glisten
andgleam_otp
versions
- Improve file sending ergonomics
- Big API refactor
- Add
client_ip
toConnection
construct - Fix reading chunked encoding
- Add method for streaming request body
- Correctly handle query strings (@Johann150)
- Add constructor for opaque
Body
type for testing handlers - Handle WebSocket
ping
frames and reply correctly - Fix incorrect pattern match in
file_open
(@avdgaag)
- Big public API refactoring and docs clean-up
- Fixed erroneous extra CRLF after response body
- Support chunked responses, via
Chunked(Iterator(BitBuilder))
- Convert syntax for gleam v0.27 support
- Utilize
request.scheme
to determine which transport to use automatically - Support the
Expect: 100-continue
header functionality
- Remove duplicate imports that errored on newer gleam versions
- Support more HTTP status codes
- Allow
state.transport
in handlers to abstract overTCP
/SSL
- Add SSL support via the
run_service_ssl
andserve_ssl
methods - Some refactorings in the internal libraries, if you were depending on them
- Update
glisten
version
- Fixed up broken README examples
- Removed a
main
method I accidentally left in :(
- BREAKING:
- refactor
http.handle
andhttp.handle_func
into separate module
- refactor
The handler_func
implementation was about 250 lines. That seemed a little
excessive and unclear, so I just pulled that stuff out into separate functions.
I also thought it might be nice to have a separate handler
module that housed
this code. The actual consumer changes are minimal.
- Revert
websocket.send
change- It should be a similar order to
process.send
- It should be a similar order to
- Stop automatically reading body
run_service
now accepts maximum body sizehttp
module exportsread_body
to manually parse body
- Support
Transfer-Encoding: chunked
requests - Properly support query parameters
- Fix
websocket.send
argument order - Bump GitHub workflow versions
- Big WebSocket changes
- Handle larger text messages
- Support binary messages
- Properly reply to
ping
messages - Add helper function for
send
ing
- Properly support (most) HTTP methods
- Use
Sender
in WS handler instead of raw socket
- Bump
glisten
version - Add support for
on_init
andon_close
events on WebSockets
- Make sure to include
"content-length"
header
- Wrap user handler function in
rescue
call - Add
logger
support for error handling
- Remove default
"content-type"
header guessing - Add
run_service
method for simple servers
- Update some handler response type names
- Support for sending files with
file:sendfile
- Remove
router
module and move tohttp
I started this list way later and don't really feel like going back further than this.