{-# LANGUAGE OverloadedStrings #-} module Main (main) where import qualified Control.Exception as E import Data.ByteString.Builder (byteString) import Network.HTTP.Types (ok200) import Network.Run.TCP (runTCPServer) -- network-run import Network.HTTP2.Server main :: IO () main = runTCPServer Nothing "80" runHTTP2Server where runHTTP2Server s = E.bracket (allocSimpleConfig s 4096) freeSimpleConfig (\config -> run defaultServerConfig config server) server _req _aux sendResponse = sendResponse response [] where response = responseBuilder ok200 header body header = [("Content-Type", "text/plain")] body = byteString "Hello, world!\n"
>>> isServerInitiated 0 False >>> isServerInitiated 2 True
>>> defaultServerConfig ServerConfig {numberOfWorkers = 8, connectionWindowSize = 16777216, settings = Settings {headerTableSize = 4096, enablePush = True, maxConcurrentStreams = Just 64, initialWindowSize = 262144, maxFrameSize = 16384, maxHeaderListSize = Nothing, pingRateLimit = 10, emptyFrameRateLimit = 4, settingsRateLimit = 4, rstRateLimit = 4}}