zoom-cache: A streamable, seekable, zoomable cache file format
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 mergingSummary
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.
Modules
[Index]
- Blaze
- ByteString
- Data
- Iteratee
- Data.Offset
- Data.ZoomCache
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
splitbase | Use the split-up base package. | Enabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- zoom-cache-1.2.1.6.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.2.0.0, 0.2.1.0, 0.2.1.1, 0.3.0.0, 0.4.0.0, 0.5.0.0, 0.5.1.0, 0.6.0.0, 0.7.0.0, 0.8.0.0, 0.8.1.0, 0.9.0.0, 0.9.1.0, 1.0.0.0, 1.1.0.0, 1.2.0.0, 1.2.1.0, 1.2.1.1, 1.2.1.2, 1.2.1.3, 1.2.1.4, 1.2.1.5, 1.2.1.6 |
---|---|
Dependencies | 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 (>=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, ui-command, unix, zlib [details] |
License | BSD-3-Clause |
Author | Conrad Parker |
Maintainer | conrad@metadecks.org |
Category | Development |
Source repo | head: git clone git://github.com/kfish/zoom-cache.git |
Uploaded | by ConradParker at 2012-12-07T00:08:12Z |
Distributions | |
Reverse Dependencies | 4 direct, 0 indirect [details] |
Executables | zoom-cache |
Downloads | 16968 total (44 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |