aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2025-01-24Add initial http_perf_SUITELoïc Hoguin
2025-01-23Fix supported OTP version in user guideLoïc Hoguin
2025-01-23Fix a few underspec'd types in cowboy_staticMarko Mindek
2025-01-23Correcting TransOpts in send_timeout_close testsBjörn Svensson
2025-01-23Add WS compression test where only server sets client_max_window_bitsJose M Perez
When the server has a non-default value configured and the client doesn't send one the extension negotiation should fail.
2025-01-22Websocket: Also apply max_frame_size limit to decompressed dataLoïc Hoguin
Before this commit frames could "cheat" by compressing data below the limit which would get expanded above the limit. Now Cowboy will stop decompressing data when the limit is reached.
2025-01-22Use cow_deflate in cowboy_decompress_hLoïc Hoguin
The function inflate/3 was moved there to make it usable from within Cowlib itself.
2025-01-22Add compressed Websocket to ws_perf_SUITELoïc Hoguin
2025-01-16Websocket: Allow setting the max_frame_size option dynamicallyLoïc Hoguin
This can be used to limit the maximum frame size before some authentication or other validation is completed.
2025-01-15Switch to running autobahntestsuite via DockerLoïc Hoguin
2025-01-15Avoid resetting HTTP/2 idle_timeout timer too oftenLoïc Hoguin
Following the same strategy as Websocket described in commit cbed21c383e4cebb7df5a0a8b81f18c1738bef3e Gains are comparable as far as Websocket over HTTP/2 is concerned.
2025-01-15Avoid resetting Websocket idle_timeout timer too oftenLoïc Hoguin
`perf` has shown that Cowboy spends a lot of time cancelling and starting this timer. Instead of resetting for every data received, we now only reset a field in the state. Before it was working like this: - start idle timeout timer - on trigger, close the connection - on data, cancel and start again Now it's working like this: - start idle timeout timer for a tenth of its duration, with tick number = 0 - on trigger, if tick number != 10 - start the timer again, again for a tenth of its duration - increment tick number - on trigger, if tick number = 10 - close the connection - on data, set tick number to 0
2025-01-15Add ws_perf_SUITE to measure Websocket performanceLoïc Hoguin
It benchmarks binary, ascii, mixed and japanese data using Websocket and Websocket over HTTP/2. HTTP/2 options get set to ensure that performance is better than the default HTTP/2 options. It switches to Gun and Ranch branches that include fixes that are required for tests to complete successfully.
2024-11-27Update Discord link to a permanent inviteLoïc Hoguin
2024-11-15Update CONTRIBUTING.asciidocLoïc Hoguin
2024-11-15Add Discord server to READMELoïc Hoguin
2024-11-08CI: Remove unneeded envLoïc Hoguin
2024-11-08CI: Add concurrency rulesLoïc Hoguin
2024-11-08CI: Simplify testing for examplesLoïc Hoguin
Since we only test them on Ubuntu we can use setup-beam to install Erlang/OTP and avoid waiting for all other checks to complete. Also make the "delete master" job conditional rather than only its step.
2024-11-07CI: Fix master build deletionLoïc Hoguin
Some things likely changed and made it not work anymore. Also seems that the macOS runner is now ARM64.
2024-11-07Fix markdown example for OTP-27Loïc Hoguin
2024-11-06CI: Upload logs in examples job tooLoïc Hoguin
2024-11-06Update Erlang.mkLoïc Hoguin
2024-04-05Add VU#421644 to the HTTP/2 CONTINUATION Flood testLoïc Hoguin
2024-03-26Initial HTTP/3 implementationhttp3Loïc Hoguin
This includes Websocket over HTTP/3. Since quicer, which provides the QUIC implementation, is a NIF, Cowboy cannot depend directly on it. In order to enable QUIC and HTTP/3, users have to set the COWBOY_QUICER environment variable: export COWBOY_QUICER=1 In order to run the test suites, the same must be done for Gun: export GUN_QUICER=1 HTTP/3 support is currently not available on Windows due to compilation issues of quicer which have yet to be looked at or resolved. HTTP/3 support is also unavailable on the upcoming OTP-27 due to compilation errors in quicer dependencies. Once resolved HTTP/3 should work on OTP-27. Because of how QUIC currently works, it's possible that streams that get reset after sending a response do not receive that response. The test suite was modified to accomodate for that. A future extension to QUIC will allow us to gracefully reset streams. This also updates Erlang.mk.
2024-03-14Cowboy 2.12.02.12.0Loïc Hoguin
2024-03-14Update erlang.mkLoïc Hoguin
2024-03-14Add max_fragmented_header_block_size HTTP/2 optionLoïc Hoguin
2024-01-29Make sure we can cancel ct-examples in CI2.11.0Loïc Hoguin
2024-01-26Update ssl_hello_world example certificateLoïc Hoguin
2024-01-26Don't use specific actions versions and update cache to v4Loïc Hoguin
2024-01-26Run make ct-examples at the end of normal CILoïc Hoguin
2024-01-25Refresh copyright linesLoïc Hoguin
2024-01-23Cowboy 2.11Loïc Hoguin
2024-01-23Document reset_idle_timeout_on_send optionLoïc Hoguin
2024-01-23Fix match_qs with constraints when key is not presentgeeksilva97
Original fix by Ali Farhadi <[email protected]>.
2024-01-23Getting started must include relx in depsLoïc Hoguin
2024-01-23Update the guide with range requests supportLoïc Hoguin
Also update the list of headers cowboy_rest might set and tweak a small number of other items.
2024-01-22Document range requestsLoïc Hoguin
2024-01-18Reduce sleep in chunked_one_byte_at_a_timeLoïc Hoguin
To avoid having the connection get closed due to us taking too long on unreliable environments like GitHub Actions.
2024-01-18Retry the read_urlencoded_body_too_large if timeout triggersLoïc Hoguin
This is caused by the timeout being 1s after the period. When the CI environment is overloaded, sometimes the timeout will trigger. We retry, knowing that the timetrap will catch us if we retry too much.
2024-01-17Improve reliability of a few testsLoïc Hoguin
GitHub Actions runners are not as good as self-hosted BuildKite so some adjustments need to be made to timeouts and such.
2024-01-17Show links in README in make prepare_tagLoïc Hoguin
2024-01-17Add missing manual pages for cowboy_stream functionsLoïc Hoguin
2024-01-16REST: Allow generate_etag to return undefinedLoïc Hoguin
This allows conditionally generating an etag.
2024-01-16Recommend increasing max_frame_size_received HTTP/2 optionLoïc Hoguin
2024-01-16Confirm Websocket pong frames are received by handlersLoïc Hoguin
2024-01-16Fix an intermittent test failureLoïc Hoguin
2024-01-15Reject responses with explicit set-cookie headergeeksilva97
LH: The tests received a lot of fixes and tweaking. I also reworded the error message to be more concise.
2024-01-15Fix wrong HTTP/1 timeout being used in some casesLoïc Hoguin
Added many tests to ensure the right timeout is picked in the appropriate situation. Should there be any issues remaining we can add more tests.