Skip to content
Go to file

Latest commit

Pull Request resolved: #138

We're migrating off of Travis CI. This diff enables github actions for CI instead.

Reviewed By: watashi

Differential Revision: D25588039

fbshipit-source-id: 4d4b03736eec25212e6bff29ec59377f82ab27c3

Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Haxl Logo


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?


We welcome contributions! See CONTRIBUTING for details on how to get started, and our Code of Conduct.


Haxl uses the BSD 3-clause License, as found in the LICENSE file.


A Haskell library that simplifies access to remote data, such as databases or web-based services.




No packages published
You can’t perform that action at this time.