pypicohp is a Python binding for the h2o HTTP parser picohttpparser.
The package is available on PyPI: pip install pypicohp
.
pypicohp currently supports for parsing http requests and will support responses in future merge requests.
from pypico.request import Request
REQUEST = b"""POST /test HTTP/1.1\r
User-Agent:Test\r
Host:www.test.com\r
Accept-Language:en-us\r
Content-Length:4\r\n\r
Test"""
r = Request()
pret = r.feed_data(REQUEST)
r,get_method() # returns b"POST"
r.get_path() # returns b"/test"
r.get_headers() # returns python dict {"User-Agent": "Test", "Host": "www.test.com", "Accept-Language": "en-us", "Content-Length": "4"}
r.get_http_version() # returns "1.1"
body = REQUEST[pret:]
In near future parsing http response will be added. Also, support for chunked transfer encoding will be added.
For contribution:
- Clone this repository.
- Create a python environment.
- Run
sudo make build
for local development or runmake install
to install and test on python environment. - Run
make test
to test.