A Haskell library that simplifies access to remote data, such as databases or web-based services.
Go to file
Andreas Abel 7255eb04d4 Bump dependencies and CI (#158)
Summary:
- include latest GHCs in CI
- ~~latest minor version is determined by haskell-actions/setup~~
- ~~freeze file is a bad cache key as it contains a time stamp, use the build plan instead (the correct choice)~~

~~Successful CI run at: https://github.com/andreasabel/Haxl/actions/runs/6725224644~~
CI running here: https://github.com/andreasabel/Haxl/pull/1

Pull Request resolved: https://github.com/facebook/Haxl/pull/158

Reviewed By: simonmar

Differential Revision: D66102814

Pulled By: josefs

fbshipit-source-id: a31dbf74b7086d909c2a2c1508a749341cde11c0
2024-11-19 05:14:57 -08:00
.github/workflows Bump dependencies and CI (#158) 2024-11-19 05:14:57 -08:00
example Add copyright headers 2024-09-10 03:36:24 -07:00
Haxl Add copyright headers 2024-09-10 03:36:24 -07:00
tests Add copyright headers 2024-09-10 03:36:24 -07:00
.gitignore Make haxl compile cleanly with stack build --pedantic 2016-10-05 05:46:30 -07:00
changelog.md Update CI and bump version to 2.5.1.0 (#159) 2024-05-28 06:19:32 -07: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 Bump dependencies and CI (#158) 2024-11-19 05:14:57 -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 docs: add GH button in support of Ukraine (#147) 2022-03-07 09:39:07 -08:00
Setup.hs Add copyright headers 2024-09-10 03:36:24 -07:00
stack.yaml Allow aeson 2.0 (#148) 2022-04-11 03:11:20 -07:00
stack.yaml.lock Allow aeson 2.0 (#148) 2022-04-11 03:11:20 -07:00

Haxl Logo

Haxl

Support Ukraine 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?

Contributing

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

License

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