sockets: High-level network sockets

[ bsd3, library, network ] [ Propose Tags ]

This library provides a high-level abstraction for network sockets. It uses Haskell2010 (along with GADTs) without typeclasses to ensure that consumers of the API can only call appropriate functions on a socket.

Exceptions are tracked in the types of functions and returned to the caller with Either. The caller is free to handle these gracefully or to throw them. This library has another class of exceptions described as _unrecoverable_. This library only throws exceptions in three situations:

Versions [RSS] [faq] 0.1.0.0, 0.3.0.0, 0.3.1.0, 0.4.0.0, 0.5.0.0
Change log CHANGELOG.md
Dependencies base (>=4.11.1.0 && <5), byteslice (>=0.1.1 && <0.2), bytestring (==0.10.*), error-codes (>=0.1.0.1 && <0.2), ip (>=1.4.1), posix-api (>=0.3.2 && <0.4), primitive (==0.7.*), primitive-addr (==0.1.*), primitive-offset (==0.2.*), primitive-unlifted (==0.1.*), stm (>=2.4), text (>=1.2) [details]
License BSD-3-Clause
Copyright 2019 Andrew Martin
Author Andrew Martin
Maintainer andrew.thaddeus@gmail.com
Revised Revision 1 made by andrewthad at 2019-07-21T20:09:43Z
Category Network
Home page https://github.com/andrewthad/sockets
Bug tracker https://github.com/andrewthad/sockets/issues
Uploaded by andrewthad at 2019-07-21T19:38:37Z
Distributions NixOS:0.5.0.0
Executables sockets-example
Downloads 1767 total (34 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2019-07-21 [all 3 reports]

Modules

  • Socket
    • Socket.Address
    • Datagram
      • IPv4
        • Socket.Datagram.IPv4.Connected
        • Socket.Datagram.IPv4.Unconnected
      • Interruptible
        • Socket.Datagram.Interruptible.Addr
        • Socket.Datagram.Interruptible.ByteString
        • Socket.Datagram.Interruptible.Bytes
        • Socket.Datagram.Interruptible.MutableBytes
      • Socket.Datagram.Slab
      • Uninterruptible
        • Socket.Datagram.Uninterruptible.Addr
        • Socket.Datagram.Uninterruptible.ByteString
        • Socket.Datagram.Uninterruptible.Bytes
        • Socket.Datagram.Uninterruptible.MutableBytes
    • Stream
      • Socket.Stream.IPv4
      • Interruptible
        • Socket.Stream.Interruptible.Addr
        • Socket.Stream.Interruptible.ByteString
        • Socket.Stream.Interruptible.Bytes
        • Socket.Stream.Interruptible.Hybrid
        • Socket.Stream.Interruptible.MutableBytes
      • Uninterruptible
        • Socket.Stream.Uninterruptible.Addr
        • Socket.Stream.Uninterruptible.ByteString
        • Socket.Stream.Uninterruptible.Bytes
        • Socket.Stream.Uninterruptible.Hybrid
        • Socket.Stream.Uninterruptible.MutableBytes

Manual Flags

NameDescriptionDefault
mmsg

Use sendmmsg and recvmmsg

Disabled
verbose-errors

More informative messages from internal errors

Disabled
debug

Print debug output

Disabled
checked

Add bounds-checking to primitive array operations

Disabled
example

Build example executables

Disabled
Automatic Flags
NameDescriptionDefault

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

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

For package maintainers and hackage trustees

Candidates