How to compile QUIC code?

971 views
Skip to first unread message

Zhenyu Zhou

unread,
Apr 9, 2017, 3:26:28 PM4/9/17
to QUIC Prototype Protocol Discussion group
Hello world,

I'm new to QUIC and would like to try the implementations on its main page: https://www.chromium.org/quic

I found two code bases at section "Code":

while none of them provides a README, build.xml, pom.xml, Makefile, etc.

Could anyone offer me some ideas how to build the code base? Do I miss anything here?

Thanks in advance!

Zhenyu

Sushant Mongia

unread,
Apr 9, 2017, 4:48:21 PM4/9/17
to QUIC Prototype Protocol Discussion group
Hey Zhenyu,

If you wanted to install QUIC with chromium, quic_server and quic_client, you can follow my post here or Copy-this-Link: https://groups.google.com/a/chromium.org/forum/#!searchin/proto-quic/Sushant$20Mongia/proto-quic/2nyLYC6JTBo/hvOkRmvoGwAJ

For installation purposes, you don't really need to follow the whole topic, as my end goal is a bit different. Hope this helps!

Best
Sushant

Zhenyu Zhou

unread,
Apr 9, 2017, 10:35:51 PM4/9/17
to QUIC Prototype Protocol Discussion group
Hi Sushant,

Thank you so much for the excellent post! I went through it and still had several more questions:

(1) Do you know are quic_server and quic_client here only toy examples? I found such statement (https://www.chromium.org/quic/playing-with-quic):
note: both the client and server are meant mainly for integration testing: neither is performant at scale!
I'm wondering how practical they are, it seems that they are only simple prototypes for QUIC protocol.

(2) If I compiled and used Chromium, what is the QUIC server in this case?
If I understand correctly, the Chromium browser should be the client. I didn't find clues suggesting which server provides the content through QUIC protocol to the browser.

I appreciate it if you have any insights into these questions.

Thank you again for your help!

Zhenyu

Jo Kulik

unread,
Apr 10, 2017, 10:08:31 AM4/10/17
to proto...@chromium.org
1.  The protocol included in chromium is not a prototype of the protocol.  However, the quic_server and quic_client are toys.  They are merely non-high-performance examples of how you would drive the protocol from a client and server.  But the protocol that is spoken on the wire by this client and server is the QUIC protocol.  To draw an analogy, we have included all the pieces you would use to put together a high-performance bicycle.  But we haven't given you a high-performance bicycle.  We've given you the pieces and an example to get you started in building one yourself.

2.  If you want to serve your own data using QUIC, you'd have to use the toy server, build your own, or possibly use the Go implementation (quic-go on github).  If you just want to see the protocol in action, you could point your browser at a Google property such as Google Search or Google Drive.  If you turn on net-internals on your browser:


you can get a trace of QUIC in action from your browser.

Jo

--
You received this message because you are subscribed to the Google Groups "QUIC Prototype Protocol Discussion group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to proto-quic+unsubscribe@chromium.org.
To post to this group, send email to proto...@chromium.org.
For more options, visit https://groups.google.com/a/chromium.org/d/optout.

Sushant Mongia

unread,
Apr 10, 2017, 2:32:03 PM4/10/17
to QUIC Prototype Protocol Discussion group
Hey Zhenyu,

Jo's answer is really a neat one and I'd just like to add a little something for your second question.
To explore the full potential of the QUIC protocol, you'll definitely need to modify or build your own server. The quic_server can force QUIC onto your website and quic_client can simply fetch that data. I did it via Linux terminal and definitely found that they are just toys. I then used chromium and google-chrome to watch QUIC in action and just like Jo mentions, I used the net-internals to verify that QUIC is indeed present underneath.

So for basic implementations you could build a simple website, point the quic_respons_cache_dir to the directory, force QUIC onto your server and run that website via a suitable client. I saw commendable replies by Wesley Davison in this beautiful thread that you might require if you wanted to put in pictures and other types of data onto your website.


For the community:
My thoughts are based on my initial findings on looking into streaming videos over the QUIC protocol. There is this thread I'm maintaining here. I shall be working on it and posting my findings and questions.

Lets make it work!

Cheers
Sushant

Zhenyu Zhou

unread,
Apr 10, 2017, 5:05:55 PM4/10/17
to QUIC Prototype Protocol Discussion group
Hi Jo,

Thank you so much for the excellent answer! It is definitely helpful to me. May I ask one very last question: do you have any idea how mature is quic-go? (If I understand correctly, the repository is: https://github.com/lucas-clemente/quic-go)

Zhenyu
To unsubscribe from this group and stop receiving emails from it, send an email to proto-quic+...@chromium.org.

Zhenyu Zhou

unread,
Apr 10, 2017, 5:19:20 PM4/10/17
to QUIC Prototype Protocol Discussion group
Hi Sushant,

Thanks for the complement! Yes I also found the demo server and client are toys and that's why I'm searching for other possibilities.

It seems that currently, manual efforts are required for configuration: the header needs to be modified and add additional fields. This makes me feel like the implementation is still very rough. It is good to confirm that they are indeed prototypes.

BTW, I'll trace your thread as well and let's make it work!

Zhenyu

孙显达

unread,
Apr 14, 2022, 7:39:55 AM4/14/22
to QUIC Prototype Protocol Discussion group, zzy.c...@gmail.com
I'm trying to optimize quic's congestion control, I want to modify quic's code and compile, then stream video with quic. But I don't know how to do it, can you give me a little help, thanks a lot

Zhenyu Zhou

unread,
Apr 14, 2022, 1:04:56 PM4/14/22
to 孙显达, QUIC Prototype Protocol Discussion group
This is a too old thread (~5yr) and I have already lost the context completely... I also believe that the codebase has evolved a lot since I last touched it.

Best Regards!

Zhou, Zhenyu


Reply all
Reply to author
Forward
0 new messages