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.)
aarch64: | py27-h11-0.9.0.tgz | (NetBSD 9.0) |
aarch64: | py36-h11-0.9.0.tgz | (NetBSD 9.0) |
aarch64: | py37-h11-0.9.0.tgz | (NetBSD 9.0) |
aarch64: | py38-h11-0.9.0.tgz | (NetBSD 9.0) |
aarch64: | py27-h11-0.10.0.tgz | (NetBSD 9.0) |
aarch64: | py36-h11-0.10.0.tgz | (NetBSD 9.0) |
aarch64: | py37-h11-0.10.0.tgz | (NetBSD 9.0) |
aarch64: | py38-h11-0.10.0.tgz | (NetBSD 9.0) |
aarch64: | py27-h11-0.11.0.tgz | (NetBSD 9.0) |
aarch64: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
aarch64: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
aarch64: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
aarch64: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
alpha: | py27-h11-0.11.0.tgz | (NetBSD 9.0) |
alpha: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
alpha: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
alpha: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
alpha: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
alpha: | py36-h11-0.9.0.tgz | (NetBSD 9.0) |
alpha: | py37-h11-0.9.0.tgz | (NetBSD 9.0) |
alpha: | py38-h11-0.9.0.tgz | (NetBSD 9.0) |
alpha: | py27-h11-0.10.0.tgz | (NetBSD 9.0) |
alpha: | py36-h11-0.10.0.tgz | (NetBSD 9.0) |
alpha: | py37-h11-0.10.0.tgz | (NetBSD 9.0) |
alpha: | py38-h11-0.10.0.tgz | (NetBSD 9.0) |
earm: | py36-h11-0.10.0.tgz | (NetBSD 9.0) |
earm: | py37-h11-0.10.0.tgz | (NetBSD 9.0) |
earm: | py38-h11-0.10.0.tgz | (NetBSD 9.0) |
earm: | py36-h11-0.9.0.tgz | (NetBSD 9.0) |
earm: | py37-h11-0.9.0.tgz | (NetBSD 9.0) |
earm: | py38-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv6hf: | py27-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv6hf: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv6hf: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv6hf: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv6hf: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv6hf: | py27-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv6hf: | py36-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv6hf: | py37-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv6hf: | py38-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv6hf: | py27-h11-0.10.0.tgz | (NetBSD 9.0) |
earmv6hf: | py36-h11-0.10.0.tgz | (NetBSD 9.0) |
earmv6hf: | py37-h11-0.10.0.tgz | (NetBSD 9.0) |
earmv6hf: | py38-h11-0.10.0.tgz | (NetBSD 9.0) |
earmv6hf: | py27-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv6hf: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv6hf: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv6hf: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv6hf: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv7hf: | py27-h11-0.11.0.tgz | (NetBSD 8.0) |
earmv7hf: | py36-h11-0.11.0.tgz | (NetBSD 8.0) |
earmv7hf: | py37-h11-0.11.0.tgz | (NetBSD 8.0) |
earmv7hf: | py38-h11-0.11.0.tgz | (NetBSD 8.0) |
earmv7hf: | py39-h11-0.11.0.tgz | (NetBSD 8.0) |
earmv7hf: | py27-h11-0.9.0.tgz | (NetBSD 8.0) |
earmv7hf: | py36-h11-0.9.0.tgz | (NetBSD 8.0) |
earmv7hf: | py37-h11-0.9.0.tgz | (NetBSD 8.0) |
earmv7hf: | py38-h11-0.9.0.tgz | (NetBSD 8.0) |
earmv7hf: | py27-h11-0.9.0.tgz | (NetBSD 8.0) |
earmv7hf: | py36-h11-0.9.0.tgz | (NetBSD 8.0) |
earmv7hf: | py37-h11-0.9.0.tgz | (NetBSD 8.0) |
earmv7hf: | py38-h11-0.9.0.tgz | (NetBSD 8.0) |
earmv7hf: | py36-h11-0.10.0.tgz | (NetBSD 8.0) |
earmv7hf: | py37-h11-0.10.0.tgz | (NetBSD 8.0) |
earmv7hf: | py38-h11-0.10.0.tgz | (NetBSD 8.0) |
earmv7hf: | py27-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv7hf: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv7hf: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv7hf: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv7hf: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv7hf: | py27-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv7hf: | py36-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv7hf: | py37-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv7hf: | py38-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv7hf: | py27-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv7hf: | py36-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv7hf: | py37-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv7hf: | py38-h11-0.9.0.tgz | (NetBSD 9.0) |
earmv7hf: | py27-h11-0.10.0.tgz | (NetBSD 9.0) |
earmv7hf: | py36-h11-0.10.0.tgz | (NetBSD 9.0) |
earmv7hf: | py37-h11-0.10.0.tgz | (NetBSD 9.0) |
earmv7hf: | py38-h11-0.10.0.tgz | (NetBSD 9.0) |
earmv7hf: | py27-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv7hf: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv7hf: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv7hf: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
earmv7hf: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
i386: | py27-h11-0.9.0.tgz | (NetBSD 8.0) |
i386: | py36-h11-0.9.0.tgz | (NetBSD 8.0) |
i386: | py37-h11-0.9.0.tgz | (NetBSD 8.0) |
i386: | py38-h11-0.9.0.tgz | (NetBSD 8.0) |
i386: | py27-h11-0.10.0.tgz | (NetBSD 8.0) |
i386: | py36-h11-0.10.0.tgz | (NetBSD 8.0) |
i386: | py37-h11-0.10.0.tgz | (NetBSD 8.0) |
i386: | py38-h11-0.10.0.tgz | (NetBSD 8.0) |
i386: | py27-h11-0.11.0.tgz | (NetBSD 8.0) |
i386: | py36-h11-0.11.0.tgz | (NetBSD 8.0) |
i386: | py37-h11-0.11.0.tgz | (NetBSD 8.0) |
i386: | py38-h11-0.11.0.tgz | (NetBSD 8.0) |
i386: | py39-h11-0.11.0.tgz | (NetBSD 8.0) |
i386: | py27-h11-0.9.0.tgz | (NetBSD 9.0) |
i386: | py36-h11-0.9.0.tgz | (NetBSD 9.0) |
i386: | py37-h11-0.9.0.tgz | (NetBSD 9.0) |
i386: | py38-h11-0.9.0.tgz | (NetBSD 9.0) |
i386: | py27-h11-0.10.0.tgz | (NetBSD 9.0) |
i386: | py36-h11-0.10.0.tgz | (NetBSD 9.0) |
i386: | py37-h11-0.10.0.tgz | (NetBSD 9.0) |
i386: | py38-h11-0.10.0.tgz | (NetBSD 9.0) |
i386: | py27-h11-0.11.0.tgz | (NetBSD 9.0) |
i386: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
i386: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
i386: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
i386: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
m68k: | py37-h11-0.9.0.tgz | (NetBSD 9.0) |
mips64eb: | py27-h11-0.10.0.tgz | (NetBSD 9.0) |
mips64eb: | py36-h11-0.10.0.tgz | (NetBSD 9.0) |
mips64eb: | py37-h11-0.10.0.tgz | (NetBSD 9.0) |
mips64eb: | py38-h11-0.10.0.tgz | (NetBSD 9.0) |
mips64eb: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
mips64eb: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
mips64eb: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
mips64eb: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
powerpc: | py27-h11-0.11.0.tgz | (NetBSD 8.0) |
powerpc: | py36-h11-0.11.0.tgz | (NetBSD 8.0) |
powerpc: | py37-h11-0.11.0.tgz | (NetBSD 8.0) |
powerpc: | py38-h11-0.11.0.tgz | (NetBSD 8.0) |
powerpc: | py39-h11-0.11.0.tgz | (NetBSD 8.0) |
powerpc: | py27-h11-0.10.0.tgz | (NetBSD 8.0) |
powerpc: | py36-h11-0.10.0.tgz | (NetBSD 8.0) |
powerpc: | py37-h11-0.10.0.tgz | (NetBSD 8.0) |
powerpc: | py38-h11-0.10.0.tgz | (NetBSD 8.0) |
powerpc: | py27-h11-0.10.0.tgz | (NetBSD 9.0) |
powerpc: | py36-h11-0.10.0.tgz | (NetBSD 9.0) |
powerpc: | py37-h11-0.10.0.tgz | (NetBSD 9.0) |
powerpc: | py38-h11-0.10.0.tgz | (NetBSD 9.0) |
powerpc: | py27-h11-0.9.0.tgz | (NetBSD 9.0) |
powerpc: | py36-h11-0.9.0.tgz | (NetBSD 9.0) |
powerpc: | py37-h11-0.9.0.tgz | (NetBSD 9.0) |
powerpc: | py38-h11-0.9.0.tgz | (NetBSD 9.0) |
sparc64: | py27-h11-0.11.0.tgz | (NetBSD 9.0) |
sparc64: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
sparc64: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
sparc64: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
sparc64: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
sparc64: | py27-h11-0.9.0.tgz | (NetBSD 9.0) |
sparc64: | py36-h11-0.9.0.tgz | (NetBSD 9.0) |
sparc64: | py37-h11-0.9.0.tgz | (NetBSD 9.0) |
sparc64: | py38-h11-0.9.0.tgz | (NetBSD 9.0) |
sparc64: | py27-h11-0.10.0.tgz | (NetBSD 9.0) |
sparc64: | py36-h11-0.10.0.tgz | (NetBSD 9.0) |
sparc64: | py37-h11-0.10.0.tgz | (NetBSD 9.0) |
sparc64: | py38-h11-0.10.0.tgz | (NetBSD 9.0) |
sparc: | py27-h11-0.10.0.tgz | (NetBSD 9.0) |
sparc: | py36-h11-0.10.0.tgz | (NetBSD 9.0) |
sparc: | py37-h11-0.10.0.tgz | (NetBSD 9.0) |
sparc: | py38-h11-0.10.0.tgz | (NetBSD 9.0) |
sparc: | py36-h11-0.9.0.tgz | (NetBSD 9.0) |
sparc: | py37-h11-0.9.0.tgz | (NetBSD 9.0) |
sparc: | py38-h11-0.9.0.tgz | (NetBSD 9.0) |
sparc: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
sparc: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
sparc: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
sparc: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py27-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py27-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py36-h11-0.12.0.tgz | (NetBSD 9.0) |
x86_64: | py37-h11-0.12.0.tgz | (NetBSD 9.0) |
x86_64: | py38-h11-0.12.0.tgz | (NetBSD 9.0) |
x86_64: | py39-h11-0.12.0.tgz | (NetBSD 9.0) |
x86_64: | py27-h11-0.10.0.tgz | (NetBSD 9.0) |
x86_64: | py36-h11-0.10.0.tgz | (NetBSD 9.0) |
x86_64: | py37-h11-0.10.0.tgz | (NetBSD 9.0) |
x86_64: | py38-h11-0.10.0.tgz | (NetBSD 9.0) |
x86_64: | py27-h11-0.10.0.tgz | (NetBSD 8.0) |
x86_64: | py36-h11-0.10.0.tgz | (NetBSD 8.0) |
x86_64: | py37-h11-0.10.0.tgz | (NetBSD 8.0) |
x86_64: | py38-h11-0.10.0.tgz | (NetBSD 8.0) |
x86_64: | py27-h11-0.9.0.tgz | (NetBSD 8.0) |
x86_64: | py36-h11-0.9.0.tgz | (NetBSD 8.0) |
x86_64: | py37-h11-0.9.0.tgz | (NetBSD 8.0) |
x86_64: | py38-h11-0.9.0.tgz | (NetBSD 8.0) |
x86_64: | py27-h11-0.11.0.tgz | (NetBSD 8.0) |
x86_64: | py36-h11-0.11.0.tgz | (NetBSD 8.0) |
x86_64: | py37-h11-0.11.0.tgz | (NetBSD 8.0) |
x86_64: | py38-h11-0.11.0.tgz | (NetBSD 8.0) |
x86_64: | py39-h11-0.11.0.tgz | (NetBSD 8.0) |
x86_64: | py27-h11-0.9.0.tgz | (NetBSD 9.0) |
x86_64: | py36-h11-0.9.0.tgz | (NetBSD 9.0) |
x86_64: | py37-h11-0.9.0.tgz | (NetBSD 9.0) |
x86_64: | py38-h11-0.9.0.tgz | (NetBSD 9.0) |
x86_64: | py27-h11-0.10.0.tgz | (NetBSD 9.0) |
x86_64: | py36-h11-0.10.0.tgz | (NetBSD 9.0) |
x86_64: | py37-h11-0.10.0.tgz | (NetBSD 9.0) |
x86_64: | py38-h11-0.10.0.tgz | (NetBSD 9.0) |
x86_64: | py27-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py36-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py37-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py38-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py39-h11-0.11.0.tgz | (NetBSD 9.0) |
x86_64: | py36-h11-0.12.0.tgz | (NetBSD 9.0) |
x86_64: | py37-h11-0.12.0.tgz | (NetBSD 9.0) |
x86_64: | py38-h11-0.12.0.tgz | (NetBSD 9.0) |
x86_64: | py39-h11-0.12.0.tgz | (NetBSD 9.0) |
Binary packages can be installed with pkgin or pkg_add(1). The NetBSD packages collection is also designed to permit easy installation from source.
The pkg_admin audit command locates any installed package which has been mentioned in security advisories as having vulnerabilities.
Please note the vulnerabilities database might not be fully accurate, and not every bug is exploitable with every configuration.
Problem reports, updates or suggestions for this package should be reported with send-pr.