1afe3d363SDmitri TikhonovGetting Started 2afe3d363SDmitri Tikhonov=============== 3afe3d363SDmitri Tikhonov 4afe3d363SDmitri TikhonovSupported Platforms 5afe3d363SDmitri Tikhonov------------------- 6afe3d363SDmitri Tikhonov 7fb3e20e0SDmitri TikhonovLSQUIC compiles and runs on Linux, Windows, FreeBSD, Mac OS, and Android. 8fb3e20e0SDmitri TikhonovIt has been tested on i386, x86_64, and ARM (Raspberry Pi and Android). 9afe3d363SDmitri Tikhonov 10afe3d363SDmitri TikhonovDependencies 11afe3d363SDmitri Tikhonov------------ 12afe3d363SDmitri Tikhonov 13afe3d363SDmitri TikhonovLSQUIC library uses: 14afe3d363SDmitri Tikhonov 15afe3d363SDmitri Tikhonov- zlib_; 16afe3d363SDmitri Tikhonov- BoringSSL_; and 17a5fa05f9SDmitri Tikhonov- `ls-hpack`_ (as a Git submodule). 18afe3d363SDmitri Tikhonov- `ls-qpack`_ (as a Git submodule). 19afe3d363SDmitri Tikhonov 20afe3d363SDmitri TikhonovThe accompanying demo command-line tools use libevent_. 21afe3d363SDmitri Tikhonov 22afe3d363SDmitri TikhonovWhat's in the box 23afe3d363SDmitri Tikhonov----------------- 24afe3d363SDmitri Tikhonov 25afe3d363SDmitri Tikhonov- ``src/liblsquic`` -- the library 26fb3e20e0SDmitri Tikhonov- ``bin`` -- demo client and server programs 27fb3e20e0SDmitri Tikhonov- ``tests`` -- unit tests 28afe3d363SDmitri Tikhonov 29afe3d363SDmitri TikhonovBuilding 30afe3d363SDmitri Tikhonov-------- 31afe3d363SDmitri Tikhonov 32afe3d363SDmitri TikhonovTo build the library, follow instructions in the README_ file. 33afe3d363SDmitri Tikhonov 34afe3d363SDmitri TikhonovDemo Examples 35afe3d363SDmitri Tikhonov------------- 36afe3d363SDmitri Tikhonov 37afe3d363SDmitri TikhonovFetch Google home page: 38afe3d363SDmitri Tikhonov 39afe3d363SDmitri Tikhonov:: 40afe3d363SDmitri Tikhonov 41293df8d6SGeorge Wang ./http_client -s www.google.com -p / -o version=h3-29 42afe3d363SDmitri Tikhonov 43afe3d363SDmitri TikhonovRun your own server (it does not touch the filesystem, don't worry): 44afe3d363SDmitri Tikhonov 45afe3d363SDmitri Tikhonov:: 46afe3d363SDmitri Tikhonov 47afe3d363SDmitri Tikhonov ./http_server -c www.example.com,fullchain.pem,privkey.pem -s 0.0.0.0:4433 48afe3d363SDmitri Tikhonov 49afe3d363SDmitri TikhonovGrab a page from your server: 50afe3d363SDmitri Tikhonov 51afe3d363SDmitri Tikhonov:: 52afe3d363SDmitri Tikhonov 53afe3d363SDmitri Tikhonov ./http_client -H www.example.com -s 127.0.0.1:4433 -p / 54afe3d363SDmitri Tikhonov 55afe3d363SDmitri TikhonovYou can play with various options, of which there are many. Use 56afe3d363SDmitri Tikhonovthe ``-h`` command-line flag to see them. 57afe3d363SDmitri Tikhonov 588e6b1576SMichał ŚledźMore about LSQUIC 598e6b1576SMichał Śledź----------------- 608e6b1576SMichał Śledź 618e6b1576SMichał ŚledźYou may be also interested in this presentation_ about LSQUIC. 628e6b1576SMichał ŚledźSlides are available `here <https://github.com/dtikhonov/talks/tree/master/netdev-0x14>`_. 638e6b1576SMichał Śledź 64afe3d363SDmitri TikhonovNext steps 65afe3d363SDmitri Tikhonov---------- 66afe3d363SDmitri Tikhonov 67afe3d363SDmitri TikhonovIf you want to use LSQUIC in your program, check out the :doc:`tutorial` and 68afe3d363SDmitri Tikhonovthe :doc:`apiref`. 69afe3d363SDmitri Tikhonov 70afe3d363SDmitri Tikhonov:doc:`internals` covers some library internals. 71afe3d363SDmitri Tikhonov 72afe3d363SDmitri Tikhonov.. _zlib: https://www.zlib.net/ 73afe3d363SDmitri Tikhonov.. _BoringSSL: https://boringssl.googlesource.com/boringssl/ 74a5fa05f9SDmitri Tikhonov.. _`ls-hpack`: https://github.com/litespeedtech/ls-hpack 75afe3d363SDmitri Tikhonov.. _`ls-qpack`: https://github.com/litespeedtech/ls-qpack 76afe3d363SDmitri Tikhonov.. _libevent: https://libevent.org/ 77afe3d363SDmitri Tikhonov.. _README: https://github.com/litespeedtech/lsquic/blob/master/README.md 788e6b1576SMichał Śledź.. _presentation: https://www.youtube.com/watch?v=kDwyGNsQXds 79