socket: A portable and extensible sockets library.

[ library, mit, network, system ] [ Propose Tags ]

Motivation

This library aims to expose a minimal and platform-independant interface for POSIX compliant networking code.

Implementation Philosophy

  • Every operation and every flag exposed should be supported with same semantics on every platform. If this cannot be guaranteed it should be supplied by another (extension) package. Examples for things that have been ripped out of this library are: Unix sockets, SCTP, vectored IO (for now).

  • Absolutely no conditional export.

  • No `#ifdef` madness in the Haskell sources. The Haskell binding code uses the FFI to reference the platform's native networking functions. If they are not Posix compliant (i.e. under Windows) an level of indirection is introduced to write an Posix compliant equivalent in C using whatever the plaform specific building blocks are.

Platform Support

Linux

Working.

BSD

Unknown. Should work. Please report if not.

MacOS

Unknown. Please report if you have a Mac.

Windows

Unfinished (problem with non-blocking IO).

Aim: Support Windows7 or higher. Don't have dependencies on autotools, just Haskell Platform with MinGW should suffice.

Android

Unknown. Should be supported. Please get in touch if you plan to use it.


[Skip to Readme]

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.0, 0.1.0.1, 0.2.0.0, 0.3.0.1, 0.4.0.0, 0.4.0.1, 0.5.0.0, 0.5.1.0, 0.5.2.0, 0.5.3.0, 0.5.3.1, 0.6.0.0, 0.6.0.1, 0.6.1.0, 0.6.2.0, 0.7.0.0, 0.8.0.0, 0.8.0.1, 0.8.1.0, 0.8.2.0, 0.8.3.0 (info)
Change log CHANGELOG.md
Dependencies base (>=4.7 && <4.9), bytestring (<0.11) [details]
License MIT
Author Lars Petersen
Maintainer info@lars-petersen.net
Revised Revision 1 made by HerbertValerioRiedel at 2016-03-30T10:04:19Z
Category System, Network
Home page https://github.com/lpeterse/haskell-socket
Bug tracker https://github.com/lpeterse/haskell-socket/issues
Source repo head: git clone git://github.com/lpeterse/haskell-socket.git
Uploaded by LarsPetersen at 2015-06-07T18:46:57Z
Distributions LTSHaskell:0.8.3.0, NixOS:0.8.3.0
Reverse Dependencies 8 direct, 1 indirect [details]
Downloads 15783 total (55 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 2015-06-09 [all 1 reports]

Readme for socket-0.3.0.1

[back to package description]

socket

Available on Hackage License MIT Build Status

Motivation

This library aims to expose a minimal and platform-independant interface for POSIX compliant networking code.

Implementation Philosophy

  • Every operation and every flag exposed should be supported with same semantics on every platform. If this cannot be guaranteed it should be supplied by another (extension) package. Examples for things that have been ripped out of this library are:

    • Support for Unix sockets which don't have an equivalent on Windows.
    • Support for SCTP.
    • Support for vectored IO (at least unless it can be guaranteed to be supported on all platforms).
  • Absolutely no conditional exports.

  • No #ifdef madness in the Haskell sources. The Haskell binding code uses the FFI to reference the platform's native networking functions. If they are not Posix compliant (i.e. under Windows) an level of indirection is introduced to write an Posix compliant equivalent in C using whatever the plaform specific building blocks are.

Platform Support

Linux

Working.

BSD

Unknown. Should work. Please report if not.

MacOS

Unknown. Please report if you have a Mac.

Windows

Unfinished (problem with non-blocking IO).

Aim: Support Windows7 or higher. Don't have dependencies on autotools, just Haskell Platform with MinGW should suffice.

Android

Unknown. Should be supported. Please get in touch if you plan to use it.

Dependencies

  • base
  • bytestring

Tests

Run the default test suite:

cabal test