-
-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Resuming the progress on native HTTP/2 support #64
Comments
tl;dr: The vibe-http module supports HTTP/2 server side and can be used by pulling its dub package. The implementation lacks some features and introduces some (possibly breaking) changes with respect to the vibe-d:http codebase. This is why development has been excessively slow in the last year, yet the plan to include During SAoC 2019 we (@s-ludwig and I) worked on a new implementation of the whole https://github.com/vibe-d/vibe-http The codebase is compliant with the HTTP/2 RFC you are referring to. Unfortunately I currently lack the time to implement the missing features:
Moreover, the reason behind Anyway, if you are interested in using / improving / experimenting with the library, there's a separate dub package and a fair amount of documentation (see resources). Resources:
|
HTTP/2 project already exists. hunt-http already complete support HTTP 1.1 and HTTP/2 protocols. Resource:dub package: https://code.dlang.org/packages/hunt-http |
Description
HTTP/2-compliant libraries are everywhere (several libraries already exist for Rust, Haskell, Ruby, hell, even Lisp)... however, D does not have a single production-ready & user friendly library that can be used.
Indeed, the Hunt framework does have a full implementation (and hats off to those guys), but.. from my personal experience, there's several gaping flaws with it:
hunt-http
depends onhunt-net
,hunt-net
depends on hunt... you get the gist. It's nowhere near ideal, and combining vibe.d + Hunt looks like it's a recipe for disaster and a bloated binary.vibe.d hasn't had much progress on that front either. The pull request for merging HTTP/2 into mainline vibe.d (vibe-d/vibe-d#1160) has all but stagnated in progress and has been open for 5 years now with the last activity occurring nearly a year ago.
What are rough milestones of this project?
How does this project help the D community?
HTTP/2 is vastly more efficient then the textual-based HTTP/1. This would allow for more widespread adoption of vibe.d (as vibe.d is already incredibly user-friendly and has tons of features to offer) while reducing the overhead associated with such, and providing incredible performance gains (real-world applications have seen reductions of page load times ranging from 20-80%), and would pull the web-developer segment of the community into the present.
As well, with a native HTTP/2 implementation, a full native implementation of gRPC would finally be possible (as it stands, the only two are hunt-grpc and mine), allowing for better interop between languages and web services.
Recommended skills
Familiarity with the vibe.d code-base, familiarity with HTTP, grit :P
References
HTTP/2 spec
libhttp2
The text was updated successfully, but these errors were encountered: