mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 12:20:24 +00:00
56 lines
1.9 KiB
Text
56 lines
1.9 KiB
Text
[[introduction]]
|
|
== Introduction
|
|
|
|
Cowboy is a small, fast and modular HTTP server written in Erlang.
|
|
|
|
Cowboy aims to provide a complete HTTP stack, including its derivatives
|
|
Websocket and REST. Cowboy currently supports HTTP/1.0, HTTP/1.1, HTTP/2,
|
|
Websocket (all implemented drafts + standard) and Webmachine-based REST.
|
|
|
|
Cowboy is a high quality project. It has a small code base, is very
|
|
efficient (both in latency and memory use) and can easily be embedded
|
|
in another application.
|
|
|
|
Cowboy is clean Erlang code. It includes hundreds of tests and its code
|
|
is fully compliant with the Dialyzer. It is also well documented and
|
|
features both a Function Reference and a User Guide.
|
|
|
|
=== Prerequisites
|
|
|
|
Beginner Erlang knowledge is recommended for reading this guide.
|
|
|
|
Knowledge of the HTTP protocol is recommended but not required, as it
|
|
will be detailed throughout the guide.
|
|
|
|
=== Supported platforms
|
|
|
|
Cowboy is tested and supported on Linux.
|
|
|
|
Cowboy has been reported to work on other platforms, but we make no
|
|
guarantee that the experience will be safe and smooth. You are advised
|
|
to perform the necessary testing and security audits prior to deploying
|
|
on other platforms.
|
|
|
|
Cowboy is developed for Erlang/OTP 17.0, 17.1.2 and 17.3. By the time
|
|
this branch gets released the target version will probably be 18.0 and
|
|
above.
|
|
|
|
Cowboy may be compiled on other Erlang versions with small source code
|
|
modifications but there is no guarantee that it will work as expected.
|
|
|
|
Cowboy uses the maps data type which was introduced in Erlang 17.0.
|
|
|
|
=== Versioning
|
|
|
|
Cowboy uses http://semver.org/[Semantic Versioning 2.0.0].
|
|
|
|
=== Conventions
|
|
|
|
In the HTTP protocol, the method name is case sensitive. All standard
|
|
method names are uppercase.
|
|
|
|
Header names are case insensitive. Cowboy converts all the request
|
|
header names to lowercase, and expects your application to provide
|
|
lowercase header names in the response.
|
|
|
|
The same applies to any other case insensitive value.
|