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.
-
compendium-client
Mu (μ) is a purely functional framework for building micro services. -
resolv
Domain Name Service (DNS) lookup via the libresolv standard library routines -
dmcc
Haskell bindings for AVAYA DMCC API and WebSockets server for AVAYA -
nakadi-client
Haskell Client Library for the Nakadi Event Broker -
network-data
Network data structures in Haskell (IP, UDP, TCP headers, etc) -
windns
Domain Name Service (DNS) lookup via the Windows dnsapi standard library -
network-uri-json
FromJSON and ToJSON Instances for Network.URI -
hatexmpp3
XMPP client with synthetic filesystem (9P) and (optional) graphical (GTK3) interfaces -
hsendxmpp
sendxmpp clone and drop-in replacement, sending XMPP messages via CLI -
LDAPv3
Lightweight Directory Access Protocol V3 (LDAPv3) RFC4511 implementation -
transient-universe-tls
Secure communications for transient-universe -
network-voicetext
VoiceText Web API Haskell wrapper library -
iwlib
A binding to the iw library for getting info about the current WiFi connection. -
network-uri-lenses
lenses for http://hackage.haskell.org/package/network-uri -
oauth2-jwt-bearer
OAuth2 jwt-bearer client flow as per rfc7523. -
network-simple-wss
Simple Haskell interface to TLS secured WebSockets -
attoparsec-uri
A compositional URI parser / printer for attoparsec -
percent-encoder
A simple, fast percent encoder/decoder for bytestrings
Static code analysis for 29 languages.
Do you think we are missing an alternative of network-address or a related project?
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.