packages feed

zoom-cache-1.2.1.6: zoom-cache.cabal

Name:                zoom-cache

-- The package version. See the Haskell package versioning policy
-- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
-- standards guiding when and how versions should be incremented.
Version:             1.2.1.6

Synopsis:            A streamable, seekable, zoomable cache file format

Description:
    zoom-cache is a fairly simple data file format for storing and summarizing
    streams of time-series data. The purpose of this format is to make it easy
    to quickly generate plots; /zooming/ refers to being able to render a
    window of data, and being able to quickly change the bounds of the window:
    to move around and to zoom in and out.
    .
    This library provides a monadic writing and an iteratee reading interface
    for zoom-cache files. To build GUI applications, see the scope package:
    .
    <http://hackage.haskell.org/package/scope>
    .
    What's neat about the zoom-cache format and library? Glad you asked!
    .
        * Data can be stored at variable or constant rates. For variable rate
    data, a timestamp is explicitly written into the file for every value,
    which is useful for recording events that occur at unpredictable times.
    Constant rate is useful for regularly sampled data, like most digital
    audio and video recordings.
    .
        * While writing a file, summary blocks (such as minimum, maximum,
    mean and RMS values) are written out every n samples. The summary blocks
    are hierarchical, such that after two have been written, a new one
    containing a merged summary of those is written. After two of those Level
    1 summary blocks have been written, a new Level 2 summary block combining
    those is written, and so on.
    .
        * You can write your own zoom-cache codecs for custom data types, or
    to implement custom summary functions. In order to do so you provide a
    'Summary' data type, functions for encoding and decoding raw data values
    and summaries, and a function for merging 'Summary' blocks. For details,
    see "Data.ZoomCache.Codec".
    .
        * Writing of raw data blocks is optional, under control of the
    application. If you already have the raw data stored in an easily
    accessible format, your zoom-cache files may just contain the summary
    data. On the other hand, if your input data is the result of expensive
    calculations you may want to store it along with the summary data so that
    plots of any level of detail can be rendered from a single file.
    .
    When developing applications that read or write zoom-cache files, it should
    be sufficient to import only the module "Data.ZoomCache".
    .

License:             BSD3
License-file:        LICENSE
Author:              Conrad Parker
Maintainer:          conrad@metadecks.org
Stability:           Experimental
Category:            Development

Cabal-version:       >=1.8
Build-type:          Simple

-- tests/Properties.hs shouldn't have to go here, but the source files
-- for the test-suite stanzas don't get picked up by 'cabal sdist'.
Extra-source-files:
  tests/Properties.hs

flag splitBase
  description: Use the split-up base package.

Library
  if flag(splitBase)
    build-depends:
      base >= 3 && < 6
  else
    build-depends:
      base < 3

  Build-Depends:
    blaze-builder,
    bytestring                >= 0.9     && < 0.11,
    containers                >= 0.2     && < 0.6,
    data-default,
    iteratee                  >= 0.8.7.6 && < 0.9,
    iteratee-compress         >= 0.3.0.0 && < 0.4,
    ListLike                  >= 1.0     && < 4,
    MonadCatchIO-transformers >  0.2     && < 0.4,
    mtl                       >= 2.0.0.0 && < 3,
    old-locale,
    QuickCheck                >= 2.4.0.1,
    time,
    transformers              >= 0.2     && < 0.4,
    type-level,
    unix,
    zlib

  Exposed-modules:
    Blaze.ByteString.Builder.ZoomCache
    Data.Offset
    Data.Iteratee.IO.OffsetFd
    Data.Iteratee.Offset
    Data.Iteratee.ZoomCache
    Data.Iteratee.ZoomCache.Seek
    Data.Iteratee.ZoomCache.Utils
    Data.ZoomCache
    Data.ZoomCache.Bool
    Data.ZoomCache.Codec
    Data.ZoomCache.Common
    Data.ZoomCache.Dump
    Data.ZoomCache.Format
    Data.ZoomCache.Identify
    Data.ZoomCache.Multichannel
    Data.ZoomCache.Multichannel.Common
    Data.ZoomCache.Multichannel.Internal
    Data.ZoomCache.Multichannel.List
    Data.ZoomCache.Multichannel.NList
    Data.ZoomCache.NList
    Data.ZoomCache.Numeric
    Data.ZoomCache.Numeric.Delta
    Data.ZoomCache.Numeric.FloatMinMax
    Data.ZoomCache.Numeric.IEEE754
    Data.ZoomCache.Numeric.Int
    Data.ZoomCache.Numeric.Internal
    Data.ZoomCache.Numeric.Types
    Data.ZoomCache.Numeric.Word
    Data.ZoomCache.Pretty
    Data.ZoomCache.TrackSpec
    Data.ZoomCache.Types
    Data.ZoomCache.Unit
    Data.ZoomCache.Write

  Other-modules:
    Blaze.ByteString.Builder.ZoomCache.Internal
  
Executable zoom-cache
  Main-is:             zoom-cache.hs
  Hs-Source-Dirs:      ., tools
  Build-Depends:
    base >= 3 && < 6,
    blaze-builder,
    bytestring                >= 0.9     && < 0.11,
    containers                >= 0.2     && < 0.6,
    data-default,
    iteratee                  >= 0.8.7.6 && < 0.9,
    iteratee-compress,
    ListLike                  >= 1.0     && < 4,
    MonadCatchIO-transformers >  0.2     && < 0.4,
    mtl                       >= 2.0.0.0 && < 3,
    old-locale,
    QuickCheck                >= 2.4.0.1,
    time,
    transformers              >= 0.2     && < 0.4,
    type-level,
    ui-command,
    unix,
    zlib

Test-suite tests
  Type:              exitcode-stdio-1.0
  Hs-source-dirs:    tests
  Main-is:           Properties.hs
  Build-depends:
    base >= 3 && < 6,
    blaze-builder,
    iteratee                   >= 0.8.7.6 && < 0.9,
    test-framework             >= 0.3.3 && < 0.9.0,
    test-framework-quickcheck2 >= 0.2.9 && < 0.4,
    QuickCheck                 >= 2.4.0.1,
    random                     == 1.0.*,
    transformers               >= 0.2     && < 0.4,
    type-level,
    unix,
    zoom-cache

------------------------------------------------------------------------
-- Git repo
--
source-repository head
  type: git
  location: git://github.com/kfish/zoom-cache.git