packages feed

ip-1.6.0: ip.cabal

cabal-version: 2.2
name: ip
version: 1.6.0
synopsis: Library for IP and MAC addresses
homepage: https://github.com/andrewthad/haskell-ip#readme
license: BSD-3-Clause
license-file: LICENSE
author: Andrew Martin
maintainer: andrew.thaddeus@gmail.com
copyright: 2016 Andrew Martin
category: web
build-type: Simple
description:
  The `ip` package provides types and functions for dealing with
  IPv4 addresses, CIDR blocks, and MAC addresses. We provide instances
  for typeclasses found in commonly used packages like `aeson`, `vector`,
  and `hashable`. We also provide `Parser`s for working with attoparsec.
  .
  Notably, this package does not overload functions by introducing any
  typeclasses of its own. Neither does it prefix functions with the name
  of the type that they work on. Instead, functions of the same name are
  exported by several different modules, and it is expected that end users
  disambiguate by importing these modules qualified.
  .
  The only module intended to be imported unqualified is `Net.Types`. The
  types in this package should not conflict with the types in
  any other commonly used packages.
  .
  The following packages are intended to be used with this package:
  .
  * `yesod-ip`: Provides orphan instances needed to work with yesod and
    persistent. Also, provides a `yesod-form` helper.

library
  hs-source-dirs: src
  exposed-modules:
    Net.IP
    Net.IPv4
    Net.IPv6
    Net.Mac
    Net.Types
  other-modules:
    Data.ByteString.Builder.Fixed
    Data.Text.Builder.Common.Internal
    Data.Text.Builder.Fixed
    Data.Text.Builder.Variable
    Data.Word.Synthetic.Word12
  build-depends:
    , aeson >= 1.0 && < 1.5
    , attoparsec >= 0.13 && < 0.14
    , base >= 4.9.1.0 && < 5
    , byteslice >= 0.1.2 && < 0.2
    , bytesmith >= 0.3 && < 0.4
    , bytestring >= 0.10.8 && < 0.11
    , deepseq >= 1.4 && < 1.5
    , hashable >= 1.2 && < 1.4
    , natural-arithmetic >= 0.1 && <0.2
    , primitive >= 0.6.4 && < 0.8
    , small-bytearray-builder >= 0.2.1 && <0.3
    , text >= 1.2 && < 1.3
    , text-short >= 0.1.3 && < 0.2
    , vector >= 0.11 && < 0.13
    , wide-word >= 0.1.0.8 && < 0.2
  ghc-options: -Wall -O2
  default-language: Haskell2010

test-suite test
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Test.hs
  build-depends:
    , HUnit
    , QuickCheck
    , attoparsec
    , base
    , byteslice >= 0.1.2 && < 0.2
    , bytestring
    , ip
    , quickcheck-classes >= 0.4.13 && < 0.7.0.0
    , tasty
    , tasty-hunit
    , tasty-quickcheck
    , text
    , text-short
    , wide-word
  other-modules:
    IPv4ByteString1
    IPv4Text1
    IPv4Text2
    Naive
  ghc-options: -Wall -O2
  default-language: Haskell2010

test-suite spec
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Spec.hs
  build-depends:
    , base
    , hspec >= 2.5.5
    , ip
    , wide-word
  other-modules:
    Net.IPv4.RangeSpec
    Net.IPv4Spec
  ghc-options: -Wall -O2
  default-language: Haskell2010
  build-tool-depends: hspec-discover:hspec-discover >= 2.5.5

test-suite doctest
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Doctests.hs
  build-depends:
    , QuickCheck
    , base
    , doctest >= 0.10
    , ip
    , wide-word
  default-language:    Haskell2010

benchmark criterion
  type: exitcode-stdio-1.0
  build-depends:
    , attoparsec
    , base
    , byteslice
    , bytestring
    , criterion
    , ip
    , text
  other-modules:
    IPv4ByteString1
    IPv4DecodeText1
    IPv4DecodeText2
    IPv4Text1
    IPv4Text2
    Naive
  ghc-options: -Wall -O2
  default-language: Haskell2010
  hs-source-dirs: test
  main-is: Bench.hs

source-repository head
  type: git
  location: https://github.com/andrewthad/haskell-ip