-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathquic.cabal
260 lines (238 loc) · 6.77 KB
/
quic.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
cabal-version: >=1.10
name: quic
version: 0.2.7
license: BSD3
license-file: LICENSE
maintainer: kazu@iij.ad.jp
author: Kazu Yamamoto
synopsis: QUIC
description:
Library for QUIC: A UDP-Based Multiplexed and Secure Transport
category: Web
build-type: Simple
extra-source-files:
ChangeLog.md
cbits/*.h
cbits/picotls/*.h
test/servercert.pem
test/serverkey.pem
source-repository head
type: git
location: https://github.com/kazu-yamamoto/quic
flag devel
description: Development commands
default: False
flag fusion
description: Use fusion AES-GCM engine from picotls
manual: True
library
exposed-modules:
Network.QUIC
Network.QUIC.Client
Network.QUIC.Internal
Network.QUIC.Server
other-modules:
Network.QUIC.Client.Reader
Network.QUIC.Client.Run
Network.QUIC.Closer
Network.QUIC.Common
Network.QUIC.Config
Network.QUIC.Connection
Network.QUIC.Connection.Crypto
Network.QUIC.Connection.Migration
Network.QUIC.Connection.Misc
Network.QUIC.Connection.PacketNumber
Network.QUIC.Connection.Queue
Network.QUIC.Connection.Role
Network.QUIC.Connection.State
Network.QUIC.Connection.Stream
Network.QUIC.Connection.StreamTable
Network.QUIC.Connection.Timeout
Network.QUIC.Connection.Types
Network.QUIC.Connector
Network.QUIC.Crypto
Network.QUIC.Crypto.Fusion
Network.QUIC.Crypto.Keys
Network.QUIC.Crypto.Nite
Network.QUIC.Crypto.Types
Network.QUIC.Crypto.Utils
Network.QUIC.Event
Network.QUIC.Exception
Network.QUIC.Handshake
Network.QUIC.IO
Network.QUIC.Imports
Network.QUIC.Info
Network.QUIC.Logger
Network.QUIC.Packet
Network.QUIC.Packet.Decode
Network.QUIC.Packet.Decrypt
Network.QUIC.Packet.Encode
Network.QUIC.Packet.Frame
Network.QUIC.Packet.Header
Network.QUIC.Packet.Number
Network.QUIC.Packet.Token
Network.QUIC.Parameters
Network.QUIC.QLogger
Network.QUIC.Qlog
Network.QUIC.Receiver
Network.QUIC.Recovery
Network.QUIC.Recovery.Constants
Network.QUIC.Recovery.Detect
Network.QUIC.Recovery.Interface
Network.QUIC.Recovery.LossRecovery
Network.QUIC.Recovery.Metrics
Network.QUIC.Recovery.Misc
Network.QUIC.Recovery.PeerPacketNumbers
Network.QUIC.Recovery.Persistent
Network.QUIC.Recovery.Release
Network.QUIC.Recovery.Timer
Network.QUIC.Recovery.Types
Network.QUIC.Recovery.Utils
Network.QUIC.Sender
Network.QUIC.Server.Reader
Network.QUIC.Server.Run
Network.QUIC.Socket
Network.QUIC.Stream
Network.QUIC.Stream.Frag
Network.QUIC.Stream.Misc
Network.QUIC.Stream.Queue
Network.QUIC.Stream.Reass
Network.QUIC.Stream.Skew
Network.QUIC.Stream.Table
Network.QUIC.Stream.Types
Network.QUIC.TLS
Network.QUIC.Types
Network.QUIC.Types.Ack
Network.QUIC.Types.CID
Network.QUIC.Types.Constants
Network.QUIC.Types.Error
Network.QUIC.Types.Exception
Network.QUIC.Types.Frame
Network.QUIC.Types.Info
Network.QUIC.Types.Integer
Network.QUIC.Types.Packet
Network.QUIC.Types.Queue
Network.QUIC.Types.Resumption
Network.QUIC.Types.Time
Network.QUIC.Utils
Network.QUIC.Windows
default-language: Haskell2010
default-extensions: Strict StrictData
ghc-options: -Wall -Wcompat
build-depends:
base >=4.9 && <5,
async,
array >= 0.5 && < 0.6,
base16-bytestring >= 1.0 && < 1.1,
bytestring >= 0.10,
containers,
crypto-token >= 0.1.2 && < 0.2,
crypton >= 0.34,
memory >= 0.18.0 && < 0.19,
crypton-x509 >= 1.7.6 && < 1.8,
crypton-x509-system >= 1.6.7 && < 1.7,
filepath,
stm >= 2.5 && < 2.6,
data-default,
fast-logger >= 3.2.2 && < 3.3,
unix-time >= 0.4.12 && < 0.5,
iproute >= 1.7.12 && < 1.8,
network >= 3.2.3,
network-byte-order >= 0.1.7 && < 0.2,
network-control >= 0.1 && < 0.2,
random >= 1.2.1 && < 1.3,
serialise,
tls >= 2.0 && < 2.2
if os(windows)
cc-options: -D_WINDOWS
if (flag(fusion) && arch(x86_64))
cpp-options: -DUSE_FUSION
cc-options: -mavx2 -maes -mpclmul -mvaes -mvpclmulqdq
c-sources:
cbits/fusion.c
cbits/picotls.c
executable quic-server
main-is: quic-server.hs
hs-source-dirs: util
other-modules:
H3
Common
ServerX
default-language: Haskell2010
default-extensions: Strict StrictData
ghc-options: -Wall -threaded -rtsopts
build-depends:
base >=4.9 && <5,
base16-bytestring,
bytestring,
filepath,
http2,
network-byte-order,
quic,
tls,
tls-session-manager >= 0.0.5
if flag(devel)
else
buildable: False
if os(windows)
ghc-options: -with-rtsopts=--io-manager=native
executable quic-client
main-is: quic-client.hs
hs-source-dirs: util
other-modules:
H3
ClientX
Common
default-language: Haskell2010
default-extensions: Strict StrictData
ghc-options: -Wall -threaded -rtsopts
build-depends:
base >=4.9 && <5,
async,
base16-bytestring,
bytestring,
filepath,
http2,
network-byte-order,
quic,
tls,
unix-time
if flag(devel)
else
buildable: False
if os(windows)
ghc-options: -with-rtsopts=--io-manager=native
test-suite spec
type: exitcode-stdio-1.0
main-is: Spec.hs
build-tool-depends: hspec-discover:hspec-discover
hs-source-dirs: test
other-modules:
Config
ErrorSpec
FrameSpec
HandshakeSpec
IOSpec
PacketSpec
RecoverySpec
TLSSpec
TransportError
TypesSpec
default-language: Haskell2010
default-extensions: Strict StrictData
ghc-options: -Wall -threaded -rtsopts
build-depends:
base >=4.9 && <5,
QuickCheck,
async,
base16-bytestring >=1.0,
bytestring,
containers,
crypton,
hspec,
network >=3.2.2,
quic,
tls,
unix-time
if os(windows)
ghc-options: -with-rtsopts=--io-manager=native