History of changes¶
v0.6.0 (2016-10-24)¶
This is the first release since we started using h11 to write non-trivial server code, and this experience triggered a number of substantial API changes.
Backwards incompatible changes:
- Split the old
receive_data()
into the newreceive_data()
andnext_event()
, and replaced the oldPaused
pseudo-event with the newNEED_DATA
andPAUSED
sentinels. - Simplified the API by replacing the old
Connection.state_of()
,Connection.client_state
,Connection.server_state
with the newConnection.states
. - Renamed the old
prepare_to_reuse()
to the newstart_next_cycle()
. - Removed the
Paused
pseudo-event.
Backwards compatible changes:
- State machine: added a
DONE
->MUST_CLOSE
transition triggered by our peer being in theERROR
state. - Split
ProtocolError
intoLocalProtocolError
andRemoteProtocolError
(see Error handling). Use case: HTTP servers want to be able to distinguish between an error that originates locally (which produce a 500 status code) versus errors caused by remote misbehavior (which produce a 4xx status code). - Changed the
PRODUCT_ID
fromh11/<verson>
topython-h11/<version>
. (This is similar to what requests uses, and much more searchable than plain h11.)
Other changes:
- Added a minimal benchmark suite, and used it to make a few small optimizations (maybe ~20% speedup?).
v0.5.0 (2016-05-14)¶
- Initial release.