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