sockets-and-pipes: Support for the Sockets and Pipes book

[ apache, http, library, network, streaming, text ] [ Propose Tags ]

This package contains some utilities that support Sockets and Pipes (available on Leanpub), as well as re-exports from all the libraries mentioned in the book.

Code in this package

Original contributions from this package:

Chapters

List of modules that make a significant appearance in each chapter:

ChapterModulePurpose
1 Handles System.IOWriting to a file
Control.Exception.Safe Using bracket to ensure the file handle is closed
2 Chunks Data.TextText is a chunk of characters
Data.Text.IO Reading and writing files using Text instead of String
3 Bytes Data.WordWhat a byte is
Data.ByteStringByteString is a chunk of bytes
Data.Text.Encoding Conversions between ByteString and Text
Data.StringHow ByteString works with OverloadedStrings
Data.ByteString.Char8
System.IOPutting Handles into binary mode
4 Sockets Network.SocketOpening and closing sockets
Network.Socket.ByteStringWriting to and reading from sockets
System.Timeout Giving up quickly when a service does not respond
5 HTTP ASCIIExpressing HTTP messages as strings
ASCII.Char
SocketsAndPipes.ServeOur first rudimentary web server
6 HTTP types Data.ByteStringDefining datatypes for the parts of an HTTP message
Data.ByteString.Lazy
7 Encoding Data.Text.LazyEfficient string concatenations
Data.Text.Lazy.Builder
Data.ByteString.Builder
Data.TimeSimple performance testing
Data.FoldableEncoding repetitions with foldMap
8 Responding Network.Socket.ByteString.Lazy Sending responses constructed by bytestring Builder
SocketsAndPipes.Serve New web server using the encoding functions
Data.Int Contrasting Integer, Int, and Int64
9 Content types Data.Text.Lazy.Builder.IntBuilding a text response body
Text.Blaze.HtmlBuilding an HTML response body
Text.Blaze.Html5
Text.Blaze.Html.Renderer.Utf8
Data.AesonBuilding a JSON response body
10 Change Control.Concurrent.STM.TVarShared state for request-handling threads
Control.Monad.STM
11Streaming The remaining chapters are in progress.
12Request parsing
13Reading headers
14Body parsing
15Connection reuse
16Pipes

Libraries

Re-exported modules, grouped by the package that each module originally comes from:

ascii - ASCII, ASCII.Char

aeson - Data.Aeson

async - Control.Concurrent.Async

base

blaze-html - Text.Blaze.Html, Text.Blaze.Html5, Text.Blaze.Html5.Attributes, Text.Blaze.Html.Renderer.Utf8

bytestring

network

safe-exceptions - Control.Exception.Safe

stm - Control.Monad.STM, Control.Concurrent.STM.TVar

text

time - Data.Time

Modules

[Index] [Quick Jump]

  • ASCII
    • ASCII.Char
  • Control
    • Concurrent
      • Control.Concurrent.Async
      • Control.Concurrent.STM
        • Control.Concurrent.STM.TVar
    • Exception
      • Control.Exception.Safe
    • Control.Monad
      • Control.Monad.STM
  • Data
    • Data.Aeson
    • Data.ByteString
      • Data.ByteString.Builder
      • Data.ByteString.Char8
      • Data.ByteString.Lazy
    • Data.Char
    • Data.Foldable
    • Data.Int
    • Data.List
    • Data.Text
      • Data.Text.Encoding
      • Data.Text.IO
      • Data.Text.Lazy
        • Data.Text.Lazy.Builder
          • Data.Text.Lazy.Builder.Int
        • Data.Text.Lazy.Encoding
        • Data.Text.Lazy.IO
    • Data.Time
    • Data.Word
  • Network
    • Network.Socket
      • Network.Socket.ByteString
        • Network.Socket.ByteString.Lazy
  • SocketsAndPipes
  • System
    • System.IO
    • System.Timeout
  • Text
    • Blaze
      • Text.Blaze.Html
        • Renderer
          • Text.Blaze.Html.Renderer.Utf8
      • Text.Blaze.Html5
        • Text.Blaze.Html5.Attributes

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1, 0.2, 0.3, 1.0.0.0
Dependencies aeson (>=1.3 && <1.6), ascii (>=1.0 && <1.1), async (>=2.2 && <2.3), base (>=4.12 && <4.16), blaze-html (>=0.9 && <0.10), bytestring (>=0.10 && <0.11), containers (>=0.5.7 && <0.7), network (>=3.1.2 && <3.2), safe-exceptions (>=0.1 && <0.2), stm (>=2.5 && <2.6), text (>=1.2.3 && <1.3), time (>=1.9 && <1.12) [details]
License Apache-2.0
Author Chris Martin, Julie Moronuki
Maintainer Joy of Haskell <hello@joyofhaskell.com>
Revised Revision 4 made by chris_martin at 2021-02-25T09:14:56Z
Category HTTP, Network, Streaming, Text
Source repo head: git clone git://github.com/joyofhaskell/sockets-and-pipes.git
Uploaded by chris_martin at 2021-02-19T22:01:34Z
Distributions
Downloads 516 total (12 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-02-19 [all 1 reports]