mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 04:10:24 +00:00
Small, fast, modern HTTP server for Erlang/OTP.
cowboyerlangfunctionalhigh-performancehttphttp-serverhttp2http2-serverhttpsproduction-readyrestwebweb-frameworkwebsocketwebsocket-serverwebsockets
![]() A new option reset_idle_timeout_on_send has been added. When set to 'true', the idle timeout is reset not only when data is received, but also when data is sent. This allows sending large responses without having to worry about timeouts triggering. The default is currently unchanged but might change in a future release. LH: Greatly reworked the implementation so that the timeout gets reset on almost all socket writes. This essentially completely supersets the original work. Tests are mostly the same although I refactored a bit to avoid test code duplication. This commit also changes HTTP/2 behavior a little when data is received: Cowboy will not attempt to update the window before running stream handler commands to avoid sending WINDOW_UPDATE frames twice. Now it has some small heuristic to ensure they can only be sent once at most. |
||
---|---|---|
.github/workflows | ||
doc/src | ||
ebin | ||
examples | ||
src | ||
test | ||
.gitattributes | ||
.gitignore | ||
CONTRIBUTING.asciidoc | ||
erlang.mk | ||
LICENSE | ||
Makefile | ||
plugins.mk | ||
README.asciidoc | ||
rebar.config |
= Cowboy Cowboy is a small, fast and modern HTTP server for Erlang/OTP. == Goals Cowboy aims to provide a *complete* HTTP stack in a *small* code base. It is optimized for *low latency* and *low memory usage*, in part because it uses *binary strings*. Cowboy provides *routing* capabilities, selectively dispatching requests to handlers written in Erlang. Because it uses Ranch for managing connections, Cowboy can easily be *embedded* in any other application. Cowboy is *clean* and *well tested* Erlang code. == Online documentation * https://ninenines.eu/docs/en/cowboy/2.6/guide[User guide] * https://ninenines.eu/docs/en/cowboy/2.6/manual[Function reference] == Offline documentation * While still online, run `make docs` * User guide available in `doc/` in PDF and HTML formats * Function reference man pages available in `doc/man3/` and `doc/man7/` * Run `make install-docs` to install man pages on your system * Full documentation in Asciidoc available in `doc/src/` * Examples available in `examples/` == Getting help * https://github.com/ninenines/cowboy/issues[Issues tracker] * https://ninenines.eu/services[Commercial Support] * https://github.com/sponsors/essen[Sponsor me!]