haxl: A Haskell library for efficient, concurrent, and concise data access.

[ bsd3, concurrency, library ] [ Propose Tags ]

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.


[Skip to Readme]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.3.1.0, 0.4.0.0, 0.4.0.1, 0.4.0.2, 0.5.0.0, 0.5.1.0, 2.0.0.0, 2.0.1.0, 2.0.1.1, 2.1.2.0, 2.3.0.0, 2.4.0.0
Change log changelog.md
Dependencies aeson (>=0.6 && <0.12), base (>=4 && <4.9), bytestring (>=0.9 && <0.11), containers (>=0.5 && <0.6), deepseq, directory (>=1.1 && <1.3), exceptions (>=0.8 && <0.9), filepath (>=1.3 && <1.5), hashable (>=1.2 && <1.3), haxl, HUnit (>=1.2 && <1.4), pretty (>=1.1 && <1.2), text (>=1.1.0.1 && <1.3), time (>=1.4 && <1.6), unordered-containers (>=0.2 && <0.3), vector (>=0.10 && <0.12) [details]
License BSD-3-Clause
Copyright Copyright (c) 2014-present, Facebook, Inc.
Author Facebook, Inc.
Maintainer The Haxl Team <haxl-team@fb.com>
Revised Revision 2 made by phadej at 2016-07-01T13:44:12Z
Category Concurrency
Home page https://github.com/facebook/Haxl
Bug tracker https://github.com/facebook/Haxl/issues
Uploaded by SimonMarlow at 2015-11-25T10:40:00Z
Distributions
Reverse Dependencies 10 direct, 0 indirect [details]
Executables monadbench
Downloads 13006 total (67 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2015-11-25 [all 2 reports]

Readme for haxl-0.3.1.0

[back to package description]

Haxl Logo

Haxl

Haxl is a Haskell library that simplifies access to remote data, such as databases or web-based services. Haxl can automatically

  • batch multiple requests to the same data source,
  • request data from multiple data sources concurrently,
  • cache previous requests.

Having all this handled for you behind the scenes means that your data-fetching code can be much cleaner and clearer than it would otherwise be if it had to worry about optimizing data-fetching. We'll give some examples of how this works in the pages linked below.

There are two Haskell packages here:

  • haxl: The core Haxl framework
  • haxl-facebook (in example/facebook): An (incomplete) example data source for accessing the Facebook Graph API

To use Haxl in your own application, you will likely need to build one or more data sources: the thin layer between Haxl and the data that you want to fetch, be it a database, a web API, a cloud service, or whatever. The haxl-facebook package shows how we might build a Haxl data source based on the existing fb package for talking to the Facebook Graph API.

Where to go next?