Age | Commit message (Collapse) | Author |
|
|
|
|
|
Also small other changes like how we build the PLT.
|
|
Also small mostly insignificant changes to tests.
|
|
This behavior can be enabled with the `compress` protocol option.
See the `compress_response` example for more details.
All tests are now ran with and without compression for both HTTP
and HTTPS.
|
|
First and foremost: yes, you can still use Cowboy as a rebar dependency.
This commit only removes the use of rebar when *developing* Cowboy, not
when *using* Cowboy.
Over the past two years I went from very happy with rebar to unsatisfied
and most recently found it counter productive in many ways, from having
insane default configuration to various unefficient operations. The earlier
reversal from 'rebar ct' to 'ct_run' made my workflow much more natural,
as I always needed to look at 'logs/raw.log' to find out what was wrong,
anyway. Why not let 'ct_run' output it directly instead? Removing rebar
made my life easier.
If you wonder why I don't patch rebar, there's two reasons. First is that
the direction taken by rebar isn't compatible with my views, and this
would be a huge fight to steer it in another direction. I got other,
more important fights to make. Second is that I'd rather patch OTP so
that everyone benefits from it, not just users of rebar.
Anyway this isn't my personal blog so I will stop babbling here. There's
a few important things to note relative to this commit:
* You don't need rebar to work on Cowboy anymore
* The eunit tests are now ran through common_test
Ping me if it doesn't work out for you.
|
|
|
|
Small tweak to the autobahn test file, we look for the python2
executable now. It'll make my life easier.
|
|
* #state{} changes are avoided where possible
* #state{} is now smaller and use less memory
* the Req object is created only after the whole request is parsed
* parsing makes use of a single binary match context
* external calls are avoided in the critical path
* URL fragment is now extracted properly (retrieval API next commit)
* argument orders to local functions modified to avoid extra operations
* dispatching waits as long as possible before tokenizing host/path
* handler opts are no longer shown in the error messages except in init
The code may not look as beautiful as it was before. But it really
is, for parsing code. The parsing section of the file may be skipped
if your eyes start to burn.
|
|
This is the first of many API incompatible changes.
You have been warned.
|
|
|
|
|
|
This needs python2 to be the default python in /usr/bin/python.
|
|
Goes from 36s to 24s on my laptop.
|
|
We're using the existing test suite for websocket servers from the
Autobahn project to verify that out websockets implementation is
sane. A CT test suite and python module wrapping the test suite has
been added. The test suite is run when the 'make inttests' target
is executed.
|
|
|
|
|
|
|
|
Mostly thanks to Magnus Klaar as it took me a while to figure
out how PropEr tests had to be written.
|
|
Should be good for both GET and POST query strings.
This adds https://github.com/klaar/quoted.erl as a dependency.
Props to klaar for this code.
|
|
This is probably not perfect yet but it should be better than
nothing. We'll improve things with feedback received from the
many users.
|
|
Rebar recently removed their dialyzer support options so we're switching
to plain dialyzer. And as a bonus it works much better!
|
|
|
|
|
|
Handles two basic tests for both HTTP and HTTPS.
Also renames 'make test' into 'make tests'.
|
|
|
|
|
|
Using a REBAR variable makes it easy for the user to override
the REBAR to be called.
|
|
|