Cowboy 2.0 pre-release 4

03 Jan

Cowboy 2.0.0-pre.4 has been released!

This is the new recommended version of Cowboy. While I would not recommend putting it in production just yet, I do recommend you start writing new applications with this Cowboy version.

The most significant changes in the pre-release are:

  • A new architecture: there now is one process per connection and one process per request. This was done because HTTP/2 allows running requests concurrently.
  • Stream handlers. Every request, response and data goes through stream handlers. They are meant to replace hooks and more. They will be documented in a future pre-release. Check cowboy_stream and cowboy_stream_h if interested.
  • Numerous changes to the cowboy_req interface. This is very close to final. Check the manual for what changed.
  • The Req object is no longer passed in Websocket callbacks.
  • It is now possible to send frames directly from websocket_init/1.
  • SPDY support was removed, now that we have HTTP/2.
  • Update Ranch to 1.3. We still depend on Cowlib master for the time being.
  • A much improved manual.

The manual received a lot of love. It now has one page per function with a detailed description, arguments list, return value, changelog and examples. It also links to the other relevant manual pages: https://ninenines.eu/docs/en/cowboy/2.0/manual/

I am quite proud of the manual right now. While more improvements can be made, what we have now is way better than before. Feedback for further improvements is welcome!

This is a significant step toward Cowboy 2.0. Almost all the breaking changes are in. A few more pre-releases are planned and will be released on a weekly basis (with exceptions).

Cowboy is now tested and supported with Erlang/OTP 18.0 or above on Arch Linux, FreeBSD, OSX, Ubuntu and Windows 7. Contact me if you can provide permanent access to another platform for the purposes of testing.

Cowboy is now available from four locations:

They are updated at the same time so there is no real difference.

Cowboy 2.0 will be released once all the breaking changes are completed and the temporarily removed features are added back.

Thanks for your patience. I know it took a long time.


Half-price on all donations because I need a new hat: