box-socket 0.5.1.0 → 0.5.2.0
raw patch · 8 files changed
+70/−107 lines, 8 filesdep +doctest-paralleldep ~basedep ~websocketsPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: doctest-parallel
Dependency ranges changed: base, websockets
API changes (from Hackage documentation)
- Box.TCP: data Socket
+ Box.TCP: data () => Socket
Files
- ChangeLog.md +4/−0
- box-socket.cabal +19/−60
- readme.md +39/−0
- readme.org +0/−34
- src/Box/Socket/Types.hs +0/−3
- src/Box/TCP/Example.hs +0/−5
- src/Box/Websocket/Example.hs +0/−5
- test/doctests.hs +8/−0
ChangeLog.md view
@@ -1,3 +1,7 @@+0.5.2+===+* dependency bumps for 9.10+ 0.5 === * complete refactor
box-socket.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: box-socket-version: 0.5.1.0+version: 0.5.2.0 license: BSD-3-Clause license-file: LICENSE copyright: Tony Day (c) 2017@@ -13,10 +13,12 @@ description: Websockets built with the box library. build-type: Simple tested-with:- GHC ==8.10.7 || ==9.2.7 || ==9.4.7 || ==9.6.3 || ==9.8.1+ , GHC == 9.10.1+ , GHC == 9.6.5+ , GHC == 9.8.2 extra-doc-files: ChangeLog.md- readme.org+ readme.md source-repository head type: git@@ -41,60 +43,7 @@ -Wredundant-constraints common ghc2021-stanza- if impl ( ghc >= 9.2 )- default-language: GHC2021-- if impl ( ghc < 9.2 )- default-language: Haskell2010- default-extensions:- BangPatterns- BinaryLiterals- ConstrainedClassMethods- ConstraintKinds- DeriveDataTypeable- DeriveFoldable- DeriveFunctor- DeriveGeneric- DeriveLift- DeriveTraversable- DoAndIfThenElse- EmptyCase- EmptyDataDecls- EmptyDataDeriving- ExistentialQuantification- ExplicitForAll- FlexibleContexts- FlexibleInstances- ForeignFunctionInterface- GADTSyntax- GeneralisedNewtypeDeriving- HexFloatLiterals- ImplicitPrelude- InstanceSigs- KindSignatures- MonomorphismRestriction- MultiParamTypeClasses- NamedFieldPuns- NamedWildCards- NumericUnderscores- PatternGuards- PolyKinds- PostfixOperators- RankNTypes- RelaxedPolyRec- ScopedTypeVariables- StandaloneDeriving- StarIsType- TraditionalRecordSyntax- TupleSections- TypeApplications- TypeOperators- TypeSynonymInstances-- if impl ( ghc < 9.2 ) && impl ( ghc >= 8.10 )- default-extensions:- ImportQualifiedPost- StandaloneKindSignatures+ default-language: GHC2021 library import: ghc-options-stanza@@ -102,13 +51,13 @@ hs-source-dirs: src build-depends: , async >=2.2.3 && <2.3- , base >=4.8 && <5+ , base >=4.14 && <5 , box >=0.9.3 && <0.10 , bytestring >=0.11.3 && <0.13 , network-simple >=0.4 && <0.5 , profunctors >=5.6 && <5.7 , text >=1.2 && <2.2- , websockets >=0.12 && <0.13+ , websockets >=0.12 && <0.14 exposed-modules: Box.Socket.Types Box.TCP@@ -123,6 +72,16 @@ main-is: box-socket.hs hs-source-dirs: app build-depends:- , base >=4.7 && <5+ , base >=4.14 && <5 , box-socket , optparse-applicative >=0.17 && <0.19++test-suite doctests+ import: ghc2021-stanza+ main-is: doctests.hs+ hs-source-dirs: test+ build-depends:+ , base >=4.14 && <5+ , doctest-parallel >=0.3 && <0.4+ ghc-options: -threaded+ type: exitcode-stdio-1.0
+ readme.md view
@@ -0,0 +1,39 @@++# Table of Contents++1. [Usage](#org6c95983)+2. [Design](#org6cb8437)++[](https://hackage.haskell.org/package/box) [](https://github.com/tonyday567/box/actions?query=workflow%3Ahaskell-ci)++Socket API based on the box library, with websockets and TCP support.+++<a id="org6c95983"></a>++# Usage++ :set -XOverloadedStrings+ import Box+ import Box.Socket.Types+ import Box.Websocket++IO client:++ clientBox defaultSocketConfig (CloseAfter 0) (stdBox "q")++IO server:++ serverBox defaultSocketConfig (CloseAfter 0) (stdBox "q")++See examples in Box.Websocket.Example and Box.TCP.Example for a variety of usage.+++<a id="org6cb8437"></a>++# Design++- The API attempts to be similar for TCP and Websocket++- A Codensity, continuation passing style is encouraged, similar to the box library.+
− readme.org
@@ -1,34 +0,0 @@-#+TITLE: box-socket--[[https://hackage.haskell.org/package/box][file:https://img.shields.io/hackage/v/box-socket.svg]] [[https://github.com/tonyday567/box/actions?query=workflow%3Ahaskell-ci][file:https://github.com/tonyday567/box-socket/workflows/haskell-ci/badge.svg]]--Socket API based on the box library, with websockets and TCP support.--* Usage--#+begin_src haskell-ng-:set -XOverloadedStrings-import Box-import Box.Socket.Types-import Box.Websocket-#+end_src--IO client:--#+begin_src haskell-ng :results output-clientBox defaultSocketConfig (CloseAfter 0) (stdBox "q")-#+end_src--IO server:--#+begin_src haskell-ng :results output-serverBox defaultSocketConfig (CloseAfter 0) (stdBox "q")-#+end_src--See examples in Box.Websocket.Example and Box.TCP.Example for a variety of usage.--* Design--- The API attempts to be similar for TCP and Websocket--- A Codensity, continuation passing style is encouraged, similar to the box library.
src/Box/Socket/Types.hs view
@@ -1,6 +1,3 @@-{-# LANGUAGE AllowAmbiguousTypes #-}-{-# LANGUAGE TypeFamilies #-}- -- | Abstract sockets connected to 'Box'es. module Box.Socket.Types ( PostSend (..),
src/Box/TCP/Example.hs view
@@ -1,9 +1,4 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# OPTIONS_GHC -Wall #-} -- | It's a box. It's a TCP socket. It's an example. module Box.TCP.Example where
src/Box/Websocket/Example.hs view
@@ -1,9 +1,4 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# OPTIONS_GHC -Wall #-} -- | It's a box. It's a websocket. It's an example. module Box.Websocket.Example where
+ test/doctests.hs view
@@ -0,0 +1,8 @@+module Main where++import System.Environment (getArgs)+import Test.DocTest (mainFromCabal)+import Prelude (IO, (=<<))++main :: IO ()+main = mainFromCabal "box-socket" =<< getArgs