Skip to content

llhttp should be a separate, optional package #8393

Open
@ml31415

Description

@ml31415

Is your feature request related to a problem?

Currently there are several projects having python bindings for llhttp. There is

And I probably missed a couple of other ones. pyllhttp hasn't been updated for a long time and geventhttpclient also struggles with maintenance. Having a single, well maintained bindings package would profit the python ecosystem and share the maintenance in more hands.

At the same time, there are requests from people using alternative python implementations asking for pure python packages for easier integration:

Separating llhttp into a separate package would make their life easier as well.

Describe the solution you'd like

aiohttp features the best maintained python bindings for llhttp. It would be great, if not only aiohttp could profit from them. Separating the llhttp bindings into their own package and having it available as a readily available HTTP building block in line with other packages like multidict, h11 etc. would profit the python HTTP eco system as a whole and also make life easier for aiohttp users of non-standard python implementations.

Describe alternatives you've considered

pyllhttp and geventhttpclient have their own bindings using a plain C extension. Though, the cython code of aiohttp is imho nicer to read for the python user and less error prone than the c code within geventhttpclient. As all bindings just wrap around llhttp, I guess the performance differences should be marginal.

Additional context

This is more like suggesting a restructuring and not a new feature. So I'm not that sure if it really belongs here or better into the discussion section. Please just move it there, if you think it fits better.

Code of Conduct

  • I agree to follow the aio-libs Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions