Haskell Libraries

This page is a sample of the most common packages. To see a complete list see the complete package list page.

Core

Core packages solve common problems and are regularly used in most Haskell programs.

base

Basic data types, file input/output, environment, concurrency, etc.

text

Efficient immutable string/text data type for text/unicode data.

time

Dealing with dates, times, time zones, milliseconds, durations, etc.

filepath

Portably deal with file paths across Windows, OS X, Linux, etc.

vector

Efficient arrays, immutable and mutable versions.

containers

Immutable maps/dictionaries, sets, and sequences with efficient appending.

unordered-containers

Immutable maps/dictionaries and sets, implemented with hashes.

directory

Portably deal with directories, files, file properties, etc.

bytestring

Efficient immutable vectors of bytes for handling binary data.

optparse-applicative

Utilities and combinators for parsing command line options

criterion

Time how long (benchmark) your functions take to run with reliable statistical analysis.

network

Network programming; TCP/UDP sockets, UNIX domain sockets, etc.

process

Launch processes, one-shot or interactively, handle stdout, stderr, etc.

async

Abstraction for performing many actions asynchronously and concurrently.

aeson

Efficient JSON parsing and printing, automatic deriving for your data types, etc.

attoparsec

Efficient parsing library, good for network protocols and complicated binary formats.

QuickCheck

Check properties about functions with randomly generated inputs for sanity checks.

stm

Software-transactional memory; for atomic, reliable, composable, concurrency.

safe-exceptions

Extensible optionally-pure exceptions, abstracting over various types.

regex-compat

Simple POSIX-compatible regex matching.

Common

Packages for common tasks in Haskell programs. Typically more than one option.

Testing

Test frameworks that group together a bunch of tests and output success/fail results in a structured way.

hspec

A testing framework inspired by the Ruby library RSpec, featuring a friendly language for defining tests.

tasty

A testing framework and library with a friendly API.

Streaming

Libraries which provide constant-sized memory streaming to/from files, sockets, generated, etc.

pipes

Combinators for awaiting and yielding, etc.

conduit

Combinators for awaiting and yielding, with leftovers, etc.

Web/HTTP requests

Making HTTP requests to web servers, getting back a result, streaming, with various options about headers, redirections, etc.

http-client

Simple HTTP client library with lots of options.

wreq

A wrapper over http-client with a lensy API.