Jump to content
chmichael

MSQuic for Delphi ?

Recommended Posts

Hello,

  Anyone translated MSQuic headers for Delphi use ?

  Seems to be the best implementation atm.

 

Thank you

Edited by chmichael

Share this post


Link to post

QUIC seems very interesting protocol. Dunno does MSQuic support HTTP/3 also on top of it tough.

Would be nice to have implementation for Delphi...

 

-tee-

Share this post


Link to post
5 hours ago, Tommi Prami said:

Dunno does MSQuic support HTTP/3 also on top of it tough.

If not, it's dead. Chrome and all Chrome derivatives use it extensively already.

Share this post


Link to post
6 hours ago, Tommi Prami said:

does MSQuic support HTTP/3 also on top of it

Let me Google that for you...

Quote

Both the HTTP/3 and SMB stacks of Microsoft Windows leverage MsQuic, with msquic.sys providing kernel-mode functionality.

 

Quote

Q: Why isn’t there an HTTP/3 implementation along with MsQuic?

A: MsQuic is designed as a generic QUIC transport for any application protocol. Several HTTP/3 stacks that use MsQuic exist, both internal to Windows (http.sys) and external (.NET Core).

 

  • Like 2

Share this post


Link to post

I looked at MSQuic when it came out with a view to supporting it for ICS.  For Linux, MSQuic uses a forked OpenSSL version, but SChannel for Windows.  So MSQuic requires the latest Windows OS. 

 

From a Delphi perspective, MSQuic does not include HTTP/2 or HTTP/3 protocol support, and I'm not aware of any Delphi native implementations of either, only the nghttp2 DLL solution, and external DLLs are less than ideal for Delphi applications.

 

I'd like to write a Delphi HTTP/2 implementation for ICS, but it really needs to be sponsored.  I can not justify the time myself, rather work on more useful projects. 

 

To my knowledge, there are no functional benefits to HTTP/2 except performance with complex web applications with hundreds of elements on a page, and Delphi is not usually used for complex pages. 

 

The OpenSSL committee declined to accept the complex QUIC fork and instead added QUIC in a different way, the client version is available now, the server version has just started alpha testing.  But without HTTP/2 for client and server, there seems little point in adding QUIC to ICS.

 

Angus

 

 

  • Like 1

Share this post


Link to post
8 hours ago, Angus Robertson said:

I looked at MSQuic when it came out with a view to supporting it for ICS.  For Linux, MSQuic uses a forked OpenSSL version, but SChannel for Windows.  So MSQuic requires the latest Windows OS. 

This isn't a problem in a year from now most will use Windows 11.

 

8 hours ago, Angus Robertson said:

To my knowledge, there are no functional benefits to HTTP/2 except performance with complex web applications with hundreds of elements on a page, and Delphi is not usually used for complex pages.

Messaging protocols and middleware benefit also.

 

8 hours ago, Angus Robertson said:

I'd like to write a Delphi HTTP/2 implementation for ICS, but it really needs to be sponsored.  I can not justify the time myself, rather work on more useful projects.  

Yes i know it's time consuming task but you can make sell it.

 

atm only esegece has native delphi http/2 support as far i know.

It would be nice to have a benchmark between esegece HTTP/2 vs ICS HTTP 1.1.

 

Edited by chmichael

Share this post


Link to post
1 minute ago, chmichael said:

This isn't a problem in a year from now most will use Windows 11.

:classic_ohmy:

Share this post


Link to post
Quote

It would be nice to have a benchmark between esegece HTTP/2 vs ICS HTTP 1.1.

I would expect the difference downloading a 100M file to a tiny percentage difference, likewise making 100 sequential short 1M requests, or 1,000 sequential API JSON requests.

 

http/2/3 might be faster if you are doing 20 parallel API requests, if the application supports that. 

 

I added a Websocket API interface to one of my servers recently to allow thousands of requests on the open socket, I tested 50/sec, but my customers were using scripts that only managed two WS requests a second.

 

What specific application do you need http/3 for?

 

Angus

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×