0
Fork 0
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.
Find a file
Loïc Hoguin cc54c207e3
Implement flow control for HTTP/1.1
We now stop reading from the socket unless asked to,
when we reach the request body. The option
initial_stream_flow_size controls how much data
we read without being asked, as an optimization.
We may also have received additional data along
with the request headers.

This commit also reworks the timeout handling for HTTP/1.1
because the stray timeout message was easily reproducible
after implementing the flow control. The issue should be
gone for good this time.
2019-10-09 20:54:33 +02:00
doc/src Implement flow control for HTTP/1.1 2019-10-09 20:54:33 +02:00
ebin Cowboy 2.6.3 2019-04-05 11:09:55 +02:00
examples Document the commands based Websocket interface 2019-10-06 16:51:27 +02:00
src Implement flow control for HTTP/1.1 2019-10-09 20:54:33 +02:00
test Add cowboy_req:cast/2 2019-10-07 13:25:49 +02:00
.gitattributes Convert the documentation to Asciidoc 2016-01-14 13:37:20 +01:00
.gitignore gitignore: add examples/ dependency files 2016-05-25 12:54:12 +02:00
CONTRIBUTING.asciidoc Document how to run all test suites 2018-11-20 13:28:48 +01:00
erlang.mk Update erlang.mk 2018-09-12 15:00:48 +02:00
LICENSE Welcome to 2017 2017-01-02 19:36:36 +01:00
Makefile Only test on the latest release per OTP major version by default 2019-09-18 09:48:12 +02:00
plugins.mk Document the commands based Websocket interface 2019-10-06 16:51:27 +02:00
README.asciidoc Prepare the Cowboy 2.6 release 2018-11-17 13:36:14 +01:00
rebar.config Fix and optimize sending of WINDOW_UPDATE frames 2019-09-05 14:07:38 +02:00

= 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

* Official IRC Channel: #ninenines on irc.freenode.net
* https://github.com/ninenines/cowboy/issues[Issues tracker]
* https://ninenines.eu/services[Commercial Support]