./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.13.0, Package name: py39-h11-0.13.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:

Filesize: 97.817 KB

Version history: (Expand)


CVS history: (Expand)


   2022-01-24 15:27:05 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-h11: updated to 0.13.0

v0.13.0 (2022-01-19)

Features
- Clarify that the Headers class is a Sequence and inherit from the
  collections Sequence abstract base class to also indicate this (and
  gain the mixin methods).
- Switch event classes to dataclasses for easier typing and slightly
  improved performance.
- Shorten traceback of protocol errors for easier readability
- Add typing including a PEP 561 marker for usage by type checkers
- Expand the allowed status codes to [0, 999] from [0, 600]

Backwards **in**\compatible changes
- Ensure request method is a valid token
   2022-01-04 21:55:40 by Thomas Klausner | Files touched by this commit (1595)
Log message:
*: bump PKGREVISION for egg.mk users

They now have a tool dependency on py-setuptools instead of a DEPENDS
   2021-10-26 13:31:15 by Nia Alarie | Files touched by this commit (1030)
Log message:
www: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Not committed (merge conflicts):
www/nghttp2/distinfo

Unfetchable distfiles (almost certainly fetched conditionally...):
./www/nginx-devel/distinfo array-var-nginx-module-0.05.tar.gz
./www/nginx-devel/distinfo echo-nginx-module-0.62.tar.gz
./www/nginx-devel/distinfo encrypted-session-nginx-module-0.08.tar.gz
./www/nginx-devel/distinfo form-input-nginx-module-0.12.tar.gz
./www/nginx-devel/distinfo headers-more-nginx-module-0.33.tar.gz
./www/nginx-devel/distinfo lua-nginx-module-0.10.19.tar.gz
./www/nginx-devel/distinfo naxsi-1.3.tar.gz
./www/nginx-devel/distinfo nginx-dav-ext-module-3.0.0.tar.gz
./www/nginx-devel/distinfo nginx-rtmp-module-1.2.2.tar.gz
./www/nginx-devel/distinfo nginx_http_push_module-1.2.10.tar.gz
./www/nginx-devel/distinfo ngx_cache_purge-2.5.1.tar.gz
./www/nginx-devel/distinfo ngx_devel_kit-0.3.1.tar.gz
./www/nginx-devel/distinfo ngx_http_geoip2_module-3.3.tar.gz
./www/nginx-devel/distinfo njs-0.5.0.tar.gz
./www/nginx-devel/distinfo set-misc-nginx-module-0.32.tar.gz
./www/nginx/distinfo array-var-nginx-module-0.05.tar.gz
./www/nginx/distinfo echo-nginx-module-0.62.tar.gz
./www/nginx/distinfo encrypted-session-nginx-module-0.08.tar.gz
./www/nginx/distinfo form-input-nginx-module-0.12.tar.gz
./www/nginx/distinfo headers-more-nginx-module-0.33.tar.gz
./www/nginx/distinfo lua-nginx-module-0.10.19.tar.gz
./www/nginx/distinfo naxsi-1.3.tar.gz
./www/nginx/distinfo nginx-dav-ext-module-3.0.0.tar.gz
./www/nginx/distinfo nginx-rtmp-module-1.2.2.tar.gz
./www/nginx/distinfo nginx_http_push_module-1.2.10.tar.gz
./www/nginx/distinfo ngx_cache_purge-2.5.1.tar.gz
./www/nginx/distinfo ngx_devel_kit-0.3.1.tar.gz
./www/nginx/distinfo ngx_http_geoip2_module-3.3.tar.gz
./www/nginx/distinfo njs-0.5.0.tar.gz
./www/nginx/distinfo set-misc-nginx-module-0.32.tar.gz
   2021-10-07 17:09:00 by Nia Alarie | Files touched by this commit (1033)
Log message:
www: Remove SHA1 hashes for distfiles
   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