A Haskell library that simplifies access to remote data, such as databases or web-based services.
Go to file
Dylan Yudaken 14ebbe2c85 Add tracking of Fetch Stats for the same batch (#111)
Summary:
Pull Request resolved: https://github.com/facebook/Haxl/pull/111

Right now BackgroundFetches produce multiple FetchStats for the same batch, but it is not possible to link these together to get an idea of how big the batch was.
This introduces a field to FetchStats that can be used to link batches together as well as a utility method to do this in a default manner

Reviewed By: watashi

Differential Revision: D19469048

fbshipit-source-id: fce687c49ac4cbdc7cbd6804f37b6f120d7efad3
2020-01-22 04:25:34 -08:00
example Remove FutureFetch from Haxl (#109) 2020-01-16 08:40:22 -08:00
Haxl Add tracking of Fetch Stats for the same batch (#111) 2020-01-22 04:25:34 -08:00
tests Add tracking of Fetch Stats for the same batch (#111) 2020-01-22 04:25:34 -08:00
.gitignore Make haxl compile cleanly with stack build --pedantic 2016-10-05 05:46:30 -07:00
.travis.yml update travis config to remove unsupported ghc versions (#106) 2020-01-10 03:25:12 -08:00
changelog.md Add tracking of Fetch Stats for the same batch (#111) 2020-01-22 04:25:34 -08:00
CODE_OF_CONDUCT.md Adopt Contributor Covenant 2019-08-29 23:20:50 -07:00
CONTRIBUTING.md Fix code of conduct link. 2018-08-07 09:35:56 -07:00
haxl.cabal Add tracking of Fetch Stats for the same batch (#111) 2020-01-22 04:25:34 -08:00
LICENSE Update haxl copyright headers 2015-03-11 12:42:01 -07:00
logo.png Initial open source import 2014-06-10 02:47:59 -07:00
logo.svg Add SVG logo 2014-06-16 06:48:28 -07:00
readme.md Also run travis CI against ghc-8.4.4 and ghc-8.6.2 2018-12-06 16:26:18 -08:00
Setup.hs Initial open source import 2014-06-10 02:47:59 -07:00
stack.yaml Bump stackage-lts version in stack.yaml 2017-06-15 11:33:47 -07:00

Haxl Logo

Haxl

Build Status

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,
  • memoize computations.

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:

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.

There is a generic datasource in "Haxl.DataSource.ConcurrentIO" that can be used for performing arbitrary IO operations concurrently, given a bit of boilerplate to define the IO operations you want to perform.

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?