A Haskell library that simplifies access to remote data, such as databases or web-based services.
Go to file
Simon Marlow c67b7af2e0 Don't drop async exceptions (e.g. AllocationLimitExceeded)
Summary:
Turning IO monad exceptions into Haxl monad exceptions can result in the
IO monad exception being lost, which is what was happening to our
AllocationLimitExceeded exceptions.  See the comment with
rethrowAsyncExceptions for more details.

See also D1870627

Test Plan:
P19741543 is a request that blows the alloc limit but wasn't being
caught before.

Reviewed By: akr@fb.com

Subscribers: ldbrandy, memo, watashi, smarlow, akr, bnitka, jcoens

FB internal diff: D1870631

Tasks: 6240444

Signature: t1:1870631:1424867073:d03bd0368ee968cecbcc5a0f654772b6f0eaf147
2015-03-11 12:41:38 -07:00
example Added a note about the Prelude 2014-07-23 16:07:47 +03:00
Haxl Don't drop async exceptions (e.g. AllocationLimitExceeded) 2015-03-11 12:41:38 -07:00
tests Don't drop async exceptions (e.g. AllocationLimitExceeded) 2015-03-11 12:41:38 -07:00
.gitignore Initial open source import 2014-06-10 02:47:59 -07:00
haxl.cabal Update aeson and text deps 2014-11-22 13:50:44 +02:00
LICENSE Initial open source import 2014-06-10 02:47:59 -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
PATENTS Initial open source import 2014-06-10 02:47:59 -07:00
readme.md Merge pull request #1 from oreoshake/mixed_content_in_readme 2014-06-10 21:08:29 +01:00
Setup.hs Initial open source import 2014-06-10 02:47:59 -07:00

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?