quic-0.1.21: quic.cabal
cabal-version: >=1.10
name: quic
version: 0.1.21
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.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.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,
array >= 0.5 && < 0.6,
base16-bytestring >= 1.0 && < 1.1,
bytestring >= 0.10,
containers >= 0.6 && < 0.7,
crypto-token >= 0.1.1 && < 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 >= 1.4 && < 1.5,
stm >= 2.5 && < 2.6,
data-default-class >= 0.1.2 && < 0.2,
fast-logger >= 3.2.2 && < 3.3,
unix-time >= 0.4.12 && < 0.5,
iproute >= 1.7.12 && < 1.8,
network >= 3.1.4,
network-byte-order >= 0.1.7 && < 0.2,
network-control >= 0.1 && < 0.2,
network-udp >= 0.0.0 && < 0.1,
random >= 1.2.1 && < 1.3,
serialise,
tls >= 2.0 && < 2.1,
unliftio >= 0.2 && < 0.3,
unliftio-core >= 0.2 && < 0.3
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,
unliftio
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,
unliftio
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.1.2,
network-udp,
quic,
tls,
unix-time,
unliftio
if os(windows)
ghc-options: -with-rtsopts=--io-manager=native