./www/py-h11, Pure-Python, bring-your-own-I/O implementation of HTTP/1.1

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.12.0, Package name: py38-h11-0.12.0, Maintainer: pkgsrc-users

This is a little HTTP/1.1 library written from scratch in Python,
heavily inspired by hyper-h2.

It's a "bring-your-own-I/O" library; h11 contains no IO code
whatsoever. This means you can hook h11 up to your favorite network
API, and that could be anything you want: synchronous, threaded,
asynchronous, or your own implementation of RFC 6214 - h11 won't
judge you. (Compare this to the current state of the art, where
every time a new network API comes along then someone gets to start
over reimplementing the entire HTTP protocol from scratch.)


Required to run:
[devel/py-setuptools] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: 05aba93845fdb3f0a57c820df1ceae864746721c
RMD160: 91faeaab6c44a185e01f0809744f35247c9d8693
Filesize: 95.821 KB

Version history: (Expand)


CVS history: (Expand)


   2021-01-15 14:02:08 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-h11: updated to 0.12.0

v0.12.0

Features

Added support for servers with broken line endings.
After this change h11 accepts both \r\n and \n as a headers delimiter.
Add early detection of invalid http data when request line starts with binary

Deprecations and Removals

Python 2.7 and PyPy 2 support is removed. h11 now requires Python>=3.6 \ 
including PyPy 3. Users running pip install h11 on Python 2 will automatically \ 
get the last Python 2-compatible version.
   2020-10-06 07:36:36 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-h11: updated to 0.11.0

v0.11.0

New features:

* h11 now stores and makes available the raw header name as
  received. In addition h11 will write out header names with the same
  casing as passed to it. This allows compatibility with systems that
  expect titlecased header names.
* Multiple content length headers are now merged into a single header
  if all the values are equal, if any are unequal a LocalProtocol
  error is raised (as before).

Backwards **in**\compatible changes:

* Headers added by h11, rather than passed to it, now have titlecased
  names. Whilst this should help compatibility it replaces the
  previous lowercased header names.
   2020-08-26 13:32:43 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-h11: updated to 0.10.0

v0.10.0:
Drop support for Python 3.4.
Support Python 3.8.
Make error messages returned by match failures less ambiguous
   2019-05-31 19:37:17 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-h11: updated to 0.9.0

v0.9.0:

Bug fixes:
* Allow a broader range of characters in header values. This violates
  the RFC, but is apparently required for compatibility with
  real-world code, like Google Analytics cookies
* Validate incoming and outgoing request paths for invalid
  characters. This prevents a variety of potential security issues
  that have affected other HTTP clients.
* Force status codes to be integers, thereby allowing stdlib
  HTTPStatus IntEnums to be used when constructing responses

Other changes:
* Make all sentinel values inspectable by IDEs, and split
  SEND_BODY_DONE into SEND_BODY, and DONE
* Drop support for Python 3.3.
* LocalProtocolError raised in start_next_cycle now shows states for
  more informative errors
   2018-05-14 10:05:12 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-h11: updated to 0.8.1

v0.8.1:

Bug fixes:
* Always return headers as bytes objects

Other changes:
* Added proper license notices to the Javascript used in our
  documentation
   2018-04-09 12:50:22 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-h11: updated to 0.8.0

v0.8.0:

Backwards incompatible changes:
h11 now performs stricter validation on outgoing header names and header values: \ 
illegal characters are now rejected (example: you can't put a newline into an \ 
HTTP header), and header values with leading/trailing whitespace are also \ 
rejected (previously h11 would silently discard the whitespace). All these \ 
checks were already performed on incoming headers; this just extends that to \ 
outgoing headers.
New features:
New method :meth:Connection.send_failed, to notify a :class:Connection object \ 
when data returned from :meth:Connection.send was not sent.

Bug fixes:
Make sure that when computing the framing headers for HEAD responses, we produce \ 
the same results as we would for the corresponding GET.
Error out if a request has multiple Host: headers.
Send the Host: header first, as recommended by RFC 7230.
The Expect: header is case-insensitive, so use case-insensitive matching when \ 
looking for 100-continue.

Other changes:
Better error messages in several cases.
Provide correct error_status_hint in exception raised when encountering an \ 
invalid Transfer-Encoding header.
For better compatibility with broken servers, h11 now tolerates responses where \ 
the reason phrase is missing (not just empty).
Various optimizations and documentation improvements.
   2018-02-27 07:58:28 by Adam Ciarcinski | Files touched by this commit (1)
Log message:
Added "python" to CATEGORIES
   2018-02-26 13:06:13 by Leonardo Taccari | Files touched by this commit (4)
Log message:
py-h11: Import py-h11-0.7.0 as www/py-h11

This is a little HTTP/1.1 library written from scratch in Python,
heavily inspired by hyper-h2.

It's a "bring-your-own-I/O" library; h11 contains no IO code
whatsoever. This means you can hook h11 up to your favorite network
API, and that could be anything you want: synchronous, threaded,
asynchronous, or your own implementation of RFC 6214 - h11 won't
judge you. (Compare this to the current state of the art, where
every time a new network API comes along then someone gets to start
over reimplementing the entire HTTP protocol from scratch.)