sockets-and-pipes
Version 0.1 revision 0 uploaded by chris_martin.
Package meta
- Synopsis
- Support for the Sockets and Pipes book
- Description
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:
Chapter Module Purpose 1 Handles System.IO Writing to a file Control.Exception.Safe Using bracket to ensure the file handle is closed 2 Chunks Data.Text Text is a chunk of characters Data.Text.IO Reading and writing files using Text instead of String 3 Bytes Data.Word What a byte is Data.ByteString ByteString is a chunk of bytes Data.Text.Encoding Conversions between ByteString and Text Data.String How ByteString works with OverloadedStrings Data.ByteString.Char8 System.IO Putting Handles into binary mode 4 Sockets Network.Socket Opening and closing sockets Network.Socket.ByteString Writing to and reading from sockets System.Timeout Giving up quickly when a service does not respond 5 HTTP ASCII Expressing HTTP messages as strings ASCII.Char SocketsAndPipes.Serve Our first rudimentary web server 6 HTTP types Data.ByteString Defining datatypes for the parts of an HTTP message Data.ByteString.Lazy 7 Encoding Data.Text.Lazy Efficient string concatenations Data.Text.Lazy.Builder Data.ByteString.Builder Data.Time Simple performance testing Data.Foldable Encoding 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.Int Building a text response body Text.Blaze.Html Building an HTML response body Text.Blaze.Html5 Text.Blaze.Html.Renderer.Utf8 Data.Aeson Building a JSON response body 10 Change Control.Concurrent.STM.TVar 11 Chunked bodies The remaining chapters are in progress. 12 Request parsing 13 Reading headers 14 Body parsing 15 Connection reuse 16 Pipes 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
File handles - System.IO
Miscellania - System.Timeout, Control.Monad, Data.Foldable, Data.List
blaze-html - Text.Blaze.Html, Text.Blaze.Html5, Text.Blaze.Html5.Attributes, Text.Blaze.Html.Renderer.Utf8
bytestring
Strict - Data.ByteString
Lazy - Data.ByteString.Lazy
Builder - Data.ByteString.Builder
Data.ByteString.Char8 - This is included mostly to discuss why we don't use it.
network
Network.Socket - The Socket type, operations for opening and closing sockets
Network.Socket.ByteString - Socket read/write operations with strict byte strings
Network.Socket.ByteString.Lazy - Socket read/write operations with lazy byte strings
safe-exceptions - Control.Exception.Safe
stm - Control.Monad.STM, Control.Concurrent.STM.TVar
text
Strict - Data.Text, Data.Text.Encoding, Data.Text.IO
Lazy - Data.Text.Lazy, Data.Text.Lazy.Encoding, Data.Text.Lazy.IO
Builder - Data.Text.Lazy.Builder, Data.Text.Lazy.Builder.Int
time - Data.Time
- Author
- Chris Martin, Julie Moronuki
- Bug reports
- n/a
- Category
- HTTP, Network, Streaming, Text
- Copyright
- n/a
- Homepage
- n/a
- Maintainer
- Joy of Haskell <hello@joyofhaskell.com>
- Package URL
- n/a
- Stability
- n/a