Haxl/haxl.cabal
Simon Marlow b67f7f6370 Haxl 2
Summary:
This is a complete reworking of the way that Haxl schedules I/O.  The
main benefits are:

* Data fetches are no longer organised into rounds, but can be
  arbitrarily overlapped with each other and with computation.  The
  scheduler supports an arbitrary queue of work items which it can
  evaluate while data-fetching is taking place in the background.  To
  take advantage of this, data sources must implement a new form of
  `PerformFetch`, namely `BackgroundFetch`.  The old forms of
  `PerformFetch` are still supported, but won't benefit from any
  additional concurrency.

* It is now possible to specify on a per-data-source basis whether
  fetching should be optimised for batching or for latency.  A request
  to a data source that doesn't benefit from batching can be submitted
  immediately.  This is done with the new `schedulerHint` method of
  `DataSource`.

Reviewed By: niteria

Differential Revision: D4938005

fbshipit-source-id: 96f12ad05ee62d62474ee4cc1215f19d0a6fcdf3
2017-10-03 00:28:54 -07:00

159 lines
3.2 KiB
Plaintext

name: haxl
version: 0.5.1.0
synopsis: A Haskell library for efficient, concurrent,
and concise data access.
homepage: https://github.com/facebook/Haxl
bug-reports: https://github.com/facebook/Haxl/issues
license: OtherLicense
license-files: LICENSE,PATENTS
author: Facebook, Inc.
maintainer: The Haxl Team <haxl-team@fb.com>
copyright: Copyright (c) 2014-present, Facebook, Inc.
category: Concurrency
build-type: Simple
stability: alpha
cabal-version: >= 1.10
tested-with:
GHC==7.8.4,
GHC==7.10.3,
GHC==8.0.2,
GHC==8.2.1
description:
Haxl is a library and EDSL for efficient scheduling of concurrent data
accesses with a concise applicative API.
.
To use Haxl, you need to implement one or more /data sources/, which
provide the means for accessing remote data or other I/O that you
want to perform using Haxl.
.
Haxl provides two top-level modules:
.
* /Data-source implementations/ import "Haxl.Core",
.
* /Client code/ import your data sources and "Haxl.Prelude", or some
other client-level API that you provide.
extra-source-files:
readme.md
PATENTS
tests/LoadCache.txt
changelog.md
library
build-depends:
HUnit >= 1.2 && < 1.7,
aeson >= 0.6 && < 1.3,
base == 4.*,
binary >= 0.7 && < 0.10,
bytestring >= 0.9 && < 0.11,
containers == 0.5.*,
deepseq,
exceptions >=0.8 && <0.9,
filepath >= 1.3 && < 1.5,
ghc-prim,
hashable == 1.2.*,
pretty == 1.1.*,
-- text 1.2.1.0 required for instance Binary Text
text >= 1.2.1.0 && < 1.3,
time >= 1.4 && < 1.9,
stm == 2.4.*,
transformers,
unordered-containers == 0.2.*,
vector >= 0.10 && <0.13
exposed-modules:
Haxl.Core,
Haxl.Core.DataCache,
Haxl.Core.Exception,
Haxl.Core.Memo,
Haxl.Core.Monad,
Haxl.Core.RequestStore,
Haxl.Core.StateStore,
Haxl.Core.ShowP,
Haxl.Core.Types,
Haxl.Prelude
other-modules:
Haxl.Core.Util
default-language: Haskell2010
ghc-options:
-O2 -fprof-auto
-Wall
test-suite test
build-depends:
HUnit,
aeson,
base == 4.*,
binary,
bytestring,
containers,
deepseq,
filepath,
hashable,
haxl,
test-framework,
test-framework-hunit,
text,
time,
unordered-containers
ghc-options:
-Wall
-fno-warn-name-shadowing
-fno-warn-missing-signatures
hs-source-dirs:
tests
main-is:
TestMain.hs
other-modules:
AdoTests
AllTests
BadDataSource
BatchTests
Bench
CoreTests
DataCacheTest
ExampleDataSource
FullyAsyncTest
LoadCache
MemoizationTests
MockTAO
ProfileTests
SleepDataSource
TestBadDataSource
TestExampleDataSource
TestTypes
TestUtils
type:
exitcode-stdio-1.0
default-language: Haskell2010
executable monadbench
default-language:
Haskell2010
hs-source-dirs:
tests
build-depends:
base,
haxl,
hashable,
time
main-is:
MonadBench.hs
other-modules:
ExampleDataSource
ghc-options:
-O2 -main-is MonadBench -rtsopts