packages feed

chronos-1.1.3: chronos.cabal

cabal-version: 3.0
name: chronos
version: 1.1.3
synopsis: A high-performance time library
description:
  Chronos is a performance-oriented time library for Haskell, with a
  straightforward API. The main differences between this
  and the <http://hackage.haskell.org/package/time time> library
  are:

    * Chronos uses machine integers where possible. This means
      that time-related arithmetic should be faster, with the
      drawback that the types are incapable of representing times
      that are very far in the future or the past (because Chronos
      provides nanosecond, rather than picosecond, resolution).
      For most users, this is not a hindrance.
    * Chronos provides 'ToJSON'/'FromJSON' instances for serialisation.
    * Chronos provides 'Unbox' instances for working with unboxed vectors.
    * Chronos provides 'Prim' instances for working with byte arrays/primitive arrays.
    * Chronos uses normal non-overloaded haskell functions for
      encoding and decoding time. It provides <http://hackage.haskell.org/package/attoparsec attoparsec> parsers for both 'Text' and
      'ByteString'. Additionally, Chronos provides functions for
      encoding time to 'Text' or 'ByteString'. The http://hackage.haskell.org/package/time time> library accomplishes these with the
      <http://hackage.haskell.org/package/time-1.9.3/docs/Data-Time-Format.html Data.Time.Format> module, which uses UNIX-style datetime
      format strings. The approach taken by Chronos is faster and
      catches more mistakes at compile time, at the cost of being
      less expressive.
homepage: https://github.com/andrewthad/chronos
license: BSD-3-Clause
license-file: LICENSE
author: Andrew Martin
maintainer:
  Andrew Martin <andrew.thaddeus@gmail.com>
  chessai <chessai1996@gmail.com>
copyright: 2016 Andrew Martin
category: Data, Time, Parsing, Development
build-type: Simple

library
  hs-source-dirs: src
  exposed-modules:
      Chronos
      Chronos.Types
      Chronos.Locale.English
    -- only exposed for doctests
    -- it is OPTIONS_HADDOCK-hidden
      Chronos.Internal.CTimespec
  build-depends:
    , aeson >= 1.1 && < 1.6
    , attoparsec >= 0.13 && < 0.15
    , base >= 4.12 && < 5
    , bytestring >= 0.10 && < 0.11
    , deepseq >= 1.4.4.0
    , hashable >= 1.2 && < 1.4
    , primitive >= 0.6.4 && < 0.8
    , semigroups >= 0.16 && < 0.20
    , text >= 1.2 && < 1.3
    , torsor >= 0.1 && < 0.2
    , vector >= 0.11 && < 0.13
    , bytebuild >= 0.3.8 && < 0.4
    , bytesmith >= 0.3.7 && < 0.4
    , byteslice >= 0.2.5.2 && <0.3
    , text-short >= 0.1.3 && <0.2
    , natural-arithmetic >= 0.1.2 && <0.2
  if os(windows)
    build-depends: Win32 >= 2.2 && < 2.9
  default-language: Haskell2010
  c-sources: src/cbits/hs-time.c
  ghc-options:
    -Wall
    -O2

test-suite chronos-test
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Spec.hs
  build-depends:
    , HUnit
    , QuickCheck
    , aeson >= 1.1 && < 1.6
    , attoparsec
    , base
    , bytestring
    , chronos
    , deepseq >= 1.4.4.0
    , test-framework
    , test-framework-hunit
    , test-framework-quickcheck2
    , text
    , torsor
  ghc-options:
    -threaded
    -rtsopts -with-rtsopts=-N
  default-language: Haskell2010

test-suite doctest
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Doctests.hs
  build-depends:
    , QuickCheck
    , base
    , chronos
    , deepseq >= 1.4.4.0
    , doctest >= 0.10
    , torsor >= 0.1 && < 0.2
  default-language: Haskell2010

benchmark bench
  type: exitcode-stdio-1.0
  hs-source-dirs: bench
  main-is: Bench.hs
  build-depends:
    , QuickCheck
    , attoparsec
    , base
    , bytestring
    , chronos
    , criterion
    , deepseq
    , deepseq >= 1.4.4.0
    , old-locale
    , text
    , text-short
    , thyme
    , time
    , vector
  default-language: Haskell2010

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