packages feed

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 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)++[![img](https://img.shields.io/hackage/v/box-socket.svg)](https://hackage.haskell.org/package/box) [![img](https://github.com/tonyday567/box-socket/workflows/haskell-ci/badge.svg)](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