This directory contains nghttp2 Python C extension module. Currently, header compressor and decompressor are implemented in extension using cython.
This is experimental and adds some dependencies which is a bit hard to
check, so this extension module does not built with usual make
in
the top directory. Instead, a user has to run make build_ext
in
this directory.
The build extension module is called nghttp2
.
The module refers to the libnghttp2.so. If nghttp2 is installed using
make install
, then importing nghttp2 module should work. If a
user does not want to install nghttp2, then use LD_LIBRARY_PATH
pointing to the location of libnghttp2.so, which is usually in
lib/.libs
. If a user also does not want to install nghttp2 module,
use PYTHONPATH to point the location of extension module. This depends
on the architecture and Python version. For example, x86_64
architecture and Python 2.7 series, a module will be located at
build/lib.linux-x86_64-2.7
.
The following example code illustrates basic usage of compressor and decompressor:
import binascii import nghttp2 deflater = nghttp2.HDDeflater(nghttp2.HD_SIDE_REQUEST) inflater = nghttp2.HDInflater(nghttp2.HD_SIDE_REQUEST) data = deflater.deflate([(b'foo', b'bar'), (b'baz', b'buz')]) print(binascii.b2a_hex(data)) hdrs = inflater.inflate(data) print(hdrs)