Popularity
6.1
Growing
Activity
0.0
Stable
14
2
5

Monthly Downloads: 8
Programming language: Haskell
License: MIT License
Tags: Data     Network    
Latest version: v0.2.0

network-address alternatives and similar packages

Based on the "network" category.
Alternatively, view network-address alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of network-address or a related project?

Add another 'network' Package

README

Network Address

The network-address library provides data structures for IP addresses as well as sub-networks. The goal is to have a generic, fast and complete library for representing network addresses in binary or textual form. Currently it supports IPv4 and IPv6 (partially).

Usage

*Data.Network.Address> readAddress "127.0.0.1" :: IPv4
IPv4 2130706433
*Data.Network.Address> let ip = readAddress "127.0.0.1" :: IPv4
*Data.Network.Address> showAddress ip
"127.0.0.1"
*Data.Network.Address> let subnet = readSubnet "192.168.1.42/8" :: IPSubnet IPv4
*Data.Network.Address> subnet
IPSubnet (IPv4 3232235776) (-256)
*Data.Network.Address> showSubnet subnet
"192.168.1.0/8"
*Data.Network.Address> showAddress . base $ subnet
"192.168.1.0"
*Data.Network.Address> (readAddress "192.168.1.5" :: IPv4) `member` subnet
True
*Data.Network.Address> (readAddress "192.168.2.5" :: IPv4) `member` subnet
False
*Data.Network.Address> let ip = readAddress "2001:db8:0:0:0::1" :: IPv6
*Data.Network.Address> ip
IPv6 2306139568115548160 1
*Data.Network.Address> showAddress ip
"2001:db8::1"
*Data.Network.Address> let subnet = readSubnet "2001:db8::1/56" :: IPSubnet IPv6
*Data.Network.Address> showSubnet subnet
"2001:db8::/56"
*Data.Network.Address> ip `member` subnet
True

Installation

The network-address library is build using Cabal and Hackage. Just run:

cabal configure
cabal build
cabal install

Stability

The library has not reached v1.0.0 yet, and thus has an unstable API. And minor version increase (e.g. v0.1.0 -> v0.2.0) may break backwards compatibility until v1.0.0 is reached.

Documentation

Documentation is available online on Hackage: http://hackage.haskell.org/package/network-address

Documentation can be generated locally using Cabal and Haddock:

cabal haddock

Testing

The test suite can be built and run with Cabal:

cabal configure --enable-tests
cabal build
cabal test

Benchmarking

A benchmarking tool using Criterion is provided by enabling the 'benchmark' flag in Cabal:

cabal configure -fbenchmark
cabal build
./dist/build/benchmark/benchmark

TODO

  • Support for IPv4 embedded in IPv6 as per RFC 4291 Section 2.2.

License

The network-address library is licensed under the MIT license. Please read the LICENSE file for details.


*Note that all licence references and agreements mentioned in the network-address README section above are relevant to that project's source code only.