www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - gRPC / http2

reply Aldo <aldocd4 outlook.com> writes:
Hello,

I'm trying to push D at work, but its really hard. We are going 
to split our monolothic to microservices, but D is lagging behind 
other languages on this domain...

Why we still don't have a simple http2 server ?

gRPC is becoming popular, all others languages already have 
support for it (rust, go, net core, java...). I know that we 
already have a basic gRPC support with hunt-grpc, but its not 
really updated / working well (client not working on window, 
server not working on docker).

We need a package that just focus on http2 and gRPC.

I will try to start something, but I will never be able to build 
a complete http2 server alone, its beyond my skills.
Jun 03
next sibling parent Seb <seb wilzba.ch> writes:
On Monday, 3 June 2019 at 12:31:37 UTC, Aldo wrote:
 Hello,

 I'm trying to push D at work, but its really hard. We are going 
 to split our monolothic to microservices, but D is lagging 
 behind other languages on this domain...

 Why we still don't have a simple http2 server ?

 gRPC is becoming popular, all others languages already have 
 support for it (rust, go, net core, java...). I know that we 
 already have a basic gRPC support with hunt-grpc, but its not 
 really updated / working well (client not working on window, 
 server not working on docker).

 We need a package that just focus on http2 and gRPC.

 I will try to start something, but I will never be able to 
 build a complete http2 server alone, its beyond my skills.
HTTP2 support for vibe.d is being worked on e.g. here: https://github.com/vibe-d/vibe-http/pull/15 DConf presentation: http://dconf.org/2019/talks/galla.html
Jun 03
prev sibling next sibling parent Daniel Kozak <kozzi11 gmail.com> writes:
There is https://github.com/vibe-d/vibe-http
but I dont know how long it will take to make it usable in production

On Mon, Jun 3, 2019 at 2:35 PM Aldo via Digitalmars-d <
digitalmars-d puremagic.com> wrote:

 Hello,

 I'm trying to push D at work, but its really hard. We are going
 to split our monolothic to microservices, but D is lagging behind
 other languages on this domain...

 Why we still don't have a simple http2 server ?

 gRPC is becoming popular, all others languages already have
 support for it (rust, go, net core, java...). I know that we
 already have a basic gRPC support with hunt-grpc, but its not
 really updated / working well (client not working on window,
 server not working on docker).

 We need a package that just focus on http2 and gRPC.

 I will try to start something, but I will never be able to build
 a complete http2 server alone, its beyond my skills.
Jun 03
prev sibling next sibling parent lagfra <me fragal.eu> writes:
On 06/03 12:31, Aldo via Digitalmars-d wrote:
 Hello,
 
 I'm trying to push D at work, but its really hard. We are going to split our
 monolothic to microservices, but D is lagging behind other languages on this
 domain...
 
 Why we still don't have a simple http2 server ?
 
 gRPC is becoming popular, all others languages already have support for it
 (rust, go, net core, java...). I know that we already have a basic gRPC
 support with hunt-grpc, but its not really updated / working well (client
 not working on window, server not working on docker).
 
 We need a package that just focus on http2 and gRPC.
 
 I will try to start something, but I will never be able to build a complete
 http2 server alone, its beyond my skills.
I am currently working on a HTTP/2 webserver for Vibe.d (leftover from my SAoC project), it is almost complete and reviews / contributions are welcome. https://github.com/GallaFrancesco/vibe-http/tree/multiplexing_pull Last review needed: https://github.com/vibe-d/vibe-http/pull/15 gRPC support is missing from Vibe.d but I guess it would be a nice feature to implement. Have you considered adding an entry for it in https://github.com/dlang/projects ?
Jun 03
prev sibling next sibling parent lagfra <me fragal.eu> writes:
On 06/03 02:46, Daniel Kozak via Digitalmars-d wrote:
 There is https://github.com/vibe-d/vibe-http
 but I dont know how long it will take to make it usable in production
 
It's going to take a while since the review process is pretty long and our time is quite limited, but we are making progress.
Jun 03
prev sibling next sibling parent zoujiaqing <zoujiaqing gmail.com> writes:
On Monday, 3 June 2019 at 12:31:37 UTC, Aldo wrote:
 Hello,

 I'm trying to push D at work, but its really hard. We are going 
 to split our monolothic to microservices, but D is lagging 
 behind other languages on this domain...

 Why we still don't have a simple http2 server ?

 gRPC is becoming popular, all others languages already have 
 support for it (rust, go, net core, java...). I know that we 
 already have a basic gRPC support with hunt-grpc, but its not 
 really updated / working well (client not working on window, 
 server not working on docker).

 We need a package that just focus on http2 and gRPC.

 I will try to start something, but I will never be able to 
 build a complete http2 server alone, its beyond my skills.
Hi, the grpc-dlang is already working properly! https://github.com/huntlabs/grpc-dlang gRPC for DLang used by hunt-http server, hunt-http is http 1.1 and http 2.0 server and client library.
Jun 03
prev sibling parent reply zoujiaqing <zoujiaqing gmail.com> writes:
On Monday, 3 June 2019 at 12:31:37 UTC, Aldo wrote:
 Hello,

 I'm trying to push D at work, but its really hard. We are going 
 to split our monolothic to microservices, but D is lagging 
 behind other languages on this domain...

 Why we still don't have a simple http2 server ?

 gRPC is becoming popular, all others languages already have 
 support for it (rust, go, net core, java...). I know that we 
 already have a basic gRPC support with hunt-grpc, but its not 
 really updated / working well (client not working on window, 
 server not working on docker).

 We need a package that just focus on http2 and gRPC.

 I will try to start something, but I will never be able to 
 build a complete http2 server alone, its beyond my skills.
http library for DLang, support http 1.1 / http 2.0 / websocket server and client, support SSL / TLS channel( use openssl ): https://github.com/huntlabs/hunt-http
Jun 03
next sibling parent reply ikod <geller.garry gmail.com> writes:
On Monday, 3 June 2019 at 13:35:21 UTC, zoujiaqing wrote:
 On Monday, 3 June 2019 at 12:31:37 UTC, Aldo wrote:
 Hello,
http library for DLang, support http 1.1 / http 2.0 / websocket server and client, support SSL / TLS channel( use openssl ): https://github.com/huntlabs/hunt-http
Is there any docs for this package?
Jun 03
parent zoujiaqing <zoujiaqing gmail.com> writes:
On Monday, 3 June 2019 at 14:25:47 UTC, ikod wrote:
 On Monday, 3 June 2019 at 13:35:21 UTC, zoujiaqing wrote:
 On Monday, 3 June 2019 at 12:31:37 UTC, Aldo wrote:
 Hello,
http library for DLang, support http 1.1 / http 2.0 / websocket server and client, support SSL / TLS channel( use openssl ): https://github.com/huntlabs/hunt-http
Is there any docs for this package?
About docs you can see more examples for http 2.0, is here: https://github.com/huntlabs/hunt-http/tree/master/examples/H2C-Demo/source We will add some document in next month.
Jun 03
prev sibling parent reply lagfra <me fragal.eu> writes:
Regarding HTTP/2: what parts of RFC 7540 do you currently implement? It would
be nice to
share ideas regarding those details which are only broadly described (e.g.
HTTP/2
Stream prioritization).

On 06/03 01:35, zoujiaqing via Digitalmars-d wrote:
 On Monday, 3 June 2019 at 12:31:37 UTC, Aldo wrote:
 Hello,
 
 I'm trying to push D at work, but its really hard. We are going to split
 our monolothic to microservices, but D is lagging behind other languages
 on this domain...
 
 Why we still don't have a simple http2 server ?
 
 gRPC is becoming popular, all others languages already have support for
 it (rust, go, net core, java...). I know that we already have a basic
 gRPC support with hunt-grpc, but its not really updated / working well
 (client not working on window, server not working on docker).
 
 We need a package that just focus on http2 and gRPC.
 
 I will try to start something, but I will never be able to build a
 complete http2 server alone, its beyond my skills.
http library for DLang, support http 1.1 / http 2.0 / websocket server and client, support SSL / TLS channel( use openssl ): https://github.com/huntlabs/hunt-http
Jun 03
parent reply zoujiaqing <zoujiaqing gmail.com> writes:
On Monday, 3 June 2019 at 14:50:14 UTC, lagfra wrote:
 On 06/03 01:35, zoujiaqing via Digitalmars-d wrote:
 http library for DLang, support http 1.1 / http 2.0 / 
 websocket server and client, support SSL / TLS channel( use 
 openssl ):
 
 https://github.com/huntlabs/hunt-http
Regarding HTTP/2: what parts of RFC 7540 do you currently implement? It would be nice to share ideas regarding those details which are only broadly described (e.g. HTTP/2 Stream prioritization).
I think hunt-http now implements 100% of the http2 protocol. You can publish your requirements for hunt-http.
Jun 03
parent reply David J Kordsmeier <dkords gmail.com> writes:
On Monday, 3 June 2019 at 16:16:02 UTC, zoujiaqing wrote:
 On Monday, 3 June 2019 at 14:50:14 UTC, lagfra wrote:
 On 06/03 01:35, zoujiaqing via Digitalmars-d wrote:
 http library for DLang, support http 1.1 / http 2.0 / 
 websocket server and client, support SSL / TLS channel( use 
 openssl ):
 
 https://github.com/huntlabs/hunt-http
Regarding HTTP/2: what parts of RFC 7540 do you currently implement? It would be nice to share ideas regarding those details which are only broadly described (e.g. HTTP/2 Stream prioritization).
I think hunt-http now implements 100% of the http2 protocol. You can publish your requirements for hunt-http.
Thank you zoujiaqing for chiming in about hunt-http! I think the D community needs to stop putting vibe-d as the only answer for all things http server/web framework. This is not a critique of the vibe-d, it's a viable option. But there is risk with only one viable option. It makes the D community look barren, and it is hard to take the language seriously for enterprise use because there are not a plethora of web frameworks ranging from highly opinionated full stack web frameworks down to simple small frameworks (i.e. web.py style). Kudos to Huntlabs in their effort to fill this void. We can all help by supplementing docs, reporting bugs (it's hard supporting a bunch of different OSs, and bug reports help achieve that), and providing constructive feedback. At some point, I will get my own web framework released, I wrote on top of libuv a few years back. I was scratching my own itch. It was done for a commercial project, but there is no reason I can't release it. I've held back because to use a web framework seriously, the stack has to cover so many aspects of the web, it's a lot to cover, especially security. And it was a messy first effort at writing code in D. In any case, I think just putting a different idea out there is a way to help contribute to the diversity of offerings.
Jun 11
next sibling parent zoujiaqing <zoujiaqing gmail.com> writes:
Hi David J Kordsmeier:

Thank you for your words.
We will continue to improve and improve D language server 
ecological chain.

Framework recent performance test hunt-library is beter other D 
library.

Recent test result in here:
https://www.techempower.com/benchmarks/#section=test&runid=14aa155b-efb0-46c2-8354-c2b8debd36bb&hw=ph&test=plaintext
Jun 25
prev sibling parent zoujiaqing <zoujiaqing gmail.com> writes:
On Tuesday, 11 June 2019 at 16:04:05 UTC, David J Kordsmeier 
wrote:
 Thank you  zoujiaqing for chiming in about hunt-http!  I think 
 the D community needs to stop putting vibe-d as the only answer 
 for all things http server/web framework.  This is not a 
 critique of the vibe-d, it's a viable option.  But there is 
 risk with only one viable option.  It makes the D community 
 look barren, and it is hard to take the language seriously for 
 enterprise use because there are not a plethora of web 
 frameworks ranging from highly opinionated full stack web 
 frameworks down to simple small frameworks (i.e. web.py style).
  Kudos to Huntlabs in their effort to fill this void.  We can 
 all help by supplementing docs, reporting bugs (it's hard 
 supporting a bunch of different OSs, and bug reports help 
 achieve that), and providing constructive feedback.

 At some point, I will get my own web framework released, I 
 wrote on top of libuv a few years back.  I was scratching my 
 own itch.  It was done for a commercial project, but there is 
 no reason I can't release it.  I've held back because to use a 
 web framework seriously, the stack has to cover so many aspects 
 of the web, it's a lot to cover, especially security.  And it 
 was a messy first effort at writing code in D.  In any case, I 
 think just putting a different idea out there is a way to help 
 contribute to the diversity of offerings.
Hi David J Kordsmeier: Thank you for your words. We will continue to improve and improve D language server ecological chain. Framework recent performance test hunt-library is beter other D library. Recent test result in here: https://www.techempower.com/benchmarks/#section=test&runid=14aa155b-efb0-46c2-8354-c2b8debd36bb&hw=ph&test=plaintext
Jun 25