network: Low-level networking interface

[ bsd3, library, network ] [ Propose Tags ]

This package provides a low-level networking interface.

High-Level Packages

Other packages provide higher level interfaces:

  • connection

  • hookup

  • network-simple

Extended Packages

network seeks to provide a cross-platform core for networking. As such some APIs live in extended libraries. Packages in the network ecosystem are often prefixed with network-.

network-bsd

In network-3.0.0.0 the Network.BSD module was split off into its own package, network-bsd-3.0.0.0.

network-uri

In network-2.6 the Network.URI module was split off into its own package, network-uri-2.6. If you're using the Network.URI module you can automatically get it from the right package by adding this to your .cabal file:

library
  build-depends: network-uri-flag

[Skip to Readme]

Flags

Automatic Flags
NameDescriptionDefault
devel

using tests for developers

Disabled

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

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 2.0, 2.1.0.0, 2.2.0.0, 2.2.0.1, 2.2.1, 2.2.1.1, 2.2.1.2, 2.2.1.3, 2.2.1.4, 2.2.1.5, 2.2.1.6, 2.2.1.7, 2.2.1.8, 2.2.1.9, 2.2.1.10, 2.2.3, 2.2.3.1, 2.3, 2.3.0.1, 2.3.0.2, 2.3.0.3, 2.3.0.4, 2.3.0.5, 2.3.0.6, 2.3.0.7, 2.3.0.8, 2.3.0.9, 2.3.0.10, 2.3.0.11, 2.3.0.12, 2.3.0.13, 2.3.0.14, 2.3.1.0, 2.3.1.1, 2.3.2.0, 2.3.2.1, 2.4.0.0, 2.4.0.1, 2.4.1.0, 2.4.1.1, 2.4.1.2, 2.4.2.0, 2.4.2.1, 2.4.2.2, 2.4.2.3, 2.5.0.0, 2.6.0.0, 2.6.0.1, 2.6.0.2, 2.6.1.0, 2.6.2.0, 2.6.2.1, 2.6.3.0, 2.6.3.1, 2.6.3.2, 2.6.3.3, 2.6.3.4, 2.6.3.5, 2.6.3.6, 2.7.0.0, 2.7.0.1, 2.7.0.2, 2.8.0.0, 2.8.0.1, 3.0.0.0, 3.0.0.1, 3.0.1.0, 3.0.1.1, 3.1.0.0, 3.1.0.1, 3.1.1.0, 3.1.1.1, 3.1.2.0, 3.1.2.1, 3.1.2.2, 3.1.2.3, 3.1.2.4, 3.1.2.5, 3.1.2.6, 3.1.2.7, 3.1.2.8, 3.1.2.9, 3.1.3.0, 3.1.4.0, 3.2.0.0, 3.2.1.0, 3.2.2.0, 3.2.3.0, 3.2.4.0 (info)
Change log CHANGELOG.md
Dependencies base (>=4.9 && <4.17), bytestring (>=0.10 && <0.12), deepseq, directory [details]
License BSD-3-Clause
Author
Maintainer Kazu Yamamoto, Evan Borden
Revised Revision 1 made by KazuYamamoto at 2023-05-12T00:57:06Z
Category Network
Home page https://github.com/haskell/network
Bug tracker https://github.com/haskell/network/issues
Source repo head: git clone git://github.com/haskell/network.git
Uploaded by KazuYamamoto at 2022-01-20T13:31:47Z
Distributions Arch:3.1.4.0, Debian:3.1.1.1, Fedora:3.1.4.0, FreeBSD:2.6.2.1, LTSHaskell:3.1.4.0, NixOS:3.1.4.0, Stackage:3.2.4.0, openSUSE:3.1.4.0
Reverse Dependencies 989 direct, 4631 indirect [details]
Downloads 499211 total (1358 in the last 30 days)
Rating 2.5 (votes: 4) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2022-01-20 [all 1 reports]

Readme for network-3.1.2.7

[back to package description]

GitHub Actions status

network

To build this package directly from git, you must run autoreconf -i. And then use cabal configure; cabal build or stack build.

Support Policy

GHC

The network package support 3 major versions of GHC only. This means that the current stable version and two previous stable versions are supported. However, all GHC 8.x are supported currently.

Windows

We use MSYS to build this package on Windows. To use the network package on Cygwin, use stack.

Coding

.hs files

If you need C macros created by "configure" or CALLCONV/SAFE_ON_WIN, put

#include "HsNetDef.h"

"HsNet.h" does now work well since Mac's cpp sucks.

.hsc files

If you need #peek, #poke and others, create a .hsc file with

#include "HsNet.h"

HsNet.h includes HsNefDef.h and necessary C structures. Unfortunately, hsc2hs does not convert C macros. So, if you use CALLCONV/SAFE_ON_WIN, the following is also necessary:

##include "HsNetDef.h"

Milestones

2.6

  • Making SockAddrCan deprecated

2.7

See https://github.com/haskell/network/issues/296

  • Making Network deprecated
  • Making Network.BSD deprecated
  • Making MkSocket deprecated
  • Making many APIs deprecated

2.8

  • Stop exporting the PortNum Constructor in PortNumber

3.0

  • Removing Network
  • Removing Network.BSD
  • Removing SockAddrCan
  • Changing the internal structure of Socket.
  • Make address extensible.
  • Remove EOF errors