@@ -38,21 +38,17 @@ XQUIC Library released by Alibaba is …
38
38
#### Standardized Features
39
39
40
40
* All big features conforming with [ RFC 9000] ( https://www.rfc-editor.org/rfc/rfc9000 ) , [ RFC9001] ( https://www.rfc-editor.org/rfc/rfc9001 ) , [ RFC9002] ( https://www.rfc-editor.org/rfc/rfc9002 ) , [ RFC9114] ( https://www.rfc-editor.org/rfc/rfc9114 ) and [ RFC9204] ( https://www.rfc-editor.org/rfc/rfc9204 ) , including the interface between QUIC and TLS, 0-RTT connection establishment, HTTP/3 and QPACK.
41
-
42
41
* ALPN Extension conforming with [ RFC7301] ( https://www.rfc-editor.org/rfc/rfc7301 )
43
42
44
43
#### Not Yet Standardized Features
45
44
46
45
* [ Multipath QUIC] ( https://tools.ietf.org/html/draft-ietf-quic-multipath-04 )
47
-
48
46
* [ QUIC-LB] ( https://tools.ietf.org/html/draft-ietf-quic-load-balancers-13 )
49
47
50
48
#### Library Features
51
49
52
50
* Pluggable congestion control: NewReno, Cubic, BBR and BBRv2, ...
53
-
54
51
* Pluggable cryptography, integration with BoringSSL and BabaSSL
55
-
56
52
* Cross-platform implementation, support Android, iOS, HarmonyOS, Linux, macOS and Windows(v1.2.0)
57
53
58
54
## Requirements
@@ -67,30 +63,29 @@ To run test cases, you need
67
63
68
64
## QuickStart Guide
69
65
70
- XQUIC can be built with Tongsuo( BabaSSL) or BoringSSL.
66
+ XQUIC can be built with BabaSSL(Tongsuo ) or BoringSSL.
71
67
72
68
### Build with BoringSSL
73
69
74
70
``` bash
71
+ sudo apt-get install -y build-essential libevent-dev
72
+
75
73
# get XQUIC source code
76
- git clone https://github.com/alibaba/xquic.git
77
- cd xquic
74
+ git clone https://github.com/alibaba/xquic.git; cd xquic
78
75
79
76
# get and build BoringSSL
80
- git clone https://github.com/google/boringssl.git ./third_party/boringssl
81
- cd ./third_party/boringssl
77
+ git clone https://github.com/google/boringssl.git ./third_party/boringssl; cd ./third_party/boringssl
82
78
mkdir -p build && cd build
83
79
cmake -DBUILD_SHARED_LIBS=0 -DCMAKE_C_FLAGS=" -fPIC" -DCMAKE_CXX_FLAGS=" -fPIC" ..
84
- make ssl crypto
80
+ make -j ssl crypto
85
81
cd ..
86
82
SSL_TYPE_STR=" boringssl"
87
83
SSL_PATH_STR=" ${PWD} "
88
84
cd ../..
89
- # # Note: if you don’t have golang in your environment, please install [golang](https://go.dev/doc/install) first.
90
85
91
86
# build XQUIC with BoringSSL
92
- # When build XQUIC with boringssl, /usr/local/babassl directory will be searched
93
- # as default. if boringssl is deployed in other directories, SSL_PATH could be
87
+ # When build XQUIC with boringssl, by default XQUIC will use boringssl
88
+ # in third_party. If boringssl is deployed in other directories, SSL_PATH could be
94
89
# used to specify the search path of boringssl
95
90
git submodule update --init --recursive
96
91
mkdir -p build; cd build
@@ -108,23 +103,23 @@ make -j
108
103
### Build with BabaSSL(Tongsuo)
109
104
110
105
``` bash
106
+ sudo apt-get install -y build-essential libevent-dev
107
+
111
108
# get XQUIC source code
112
- git clone https://github.com/alibaba/xquic.git
113
- cd xquic
109
+ git clone https://github.com/alibaba/xquic.git; cd xquic
114
110
115
111
# get and build BabaSSL(Tongsuo)
116
- git clone -b 8.3-stable https://github.com/Tongsuo-Project/Tongsuo.git ./third_party/babassl
117
- cd ./third_party/babassl/
112
+ git clone -b 8.3-stable https://github.com/Tongsuo-Project/Tongsuo.git ./third_party/babassl; cd ./third_party/babassl/
118
113
./config --prefix=/usr/local/babassl
119
114
make -j
120
115
SSL_TYPE_STR=" babassl"
121
116
SSL_PATH_STR=" ${PWD} "
122
117
cd -
123
118
124
119
# build XQUIC with BabaSSL
125
- # When build XQUIC with boringssl , /usr/local/babassl directory will be searched
126
- # as default. if boringssl is deployed in other directories, SSL_PATH could be
127
- # used to specify the search path of boringssl
120
+ # When build XQUIC with babassl , /usr/local/babassl directory will be searched
121
+ # as default. If babassl is deployed in other directories, SSL_PATH could be
122
+ # used to specify the search path of babassl
128
123
git submodule update --init --recursive
129
124
mkdir -p build; cd build
130
125
cmake -DGCOV=on -DCMAKE_BUILD_TYPE=Debug -DXQC_ENABLE_TESTING=1 -DXQC_SUPPORT_SENDMMSG_BUILD=1 -DXQC_ENABLE_EVENT_LOG=1 -DXQC_ENABLE_BBR2=1 -DXQC_ENABLE_RENO=1 -DSSL_TYPE=${SSL_TYPE_STR} -DSSL_PATH=${SSL_PATH_STR} ..
0 commit comments