← All packages

async2.2.6

Run IO operations asynchronously and wait for their results

Open the imported Cabal file ↗

author
Simon Marlow
bug-reports
https://github.com/simonmar/async/issues
build-type
Simple
cabal-version
>=1.10
category
Concurrency
copyright
(c) Simon Marlow 2012
extra-source-files
changelog.md bench/race.hs
homepage
https://github.com/simonmar/async
license
BSD3
license-file
LICENSE
maintainer
Simon Marlow <marlowsd@gmail.com>
name
async
synopsis
Run IO operations asynchronously and wait for their results
tested-with
GHC == 9.14.1 GHC == 9.12.2 GHC == 9.10.3 GHC == 9.8.4 GHC == 9.6.7 GHC == 9.4.8 GHC == 9.2.8 GHC == 9.0.2 GHC == 8.10.7 GHC == 8.8.4 GHC == 8.6.5 GHC == 8.4.4 GHC == 8.2.2 GHC == 8.0.2
version
2.2.6
Show the complete metadata as JSON
{
  "schemaVersion": 1,
  "name": "async",
  "version": "2.2.6",
  "cabalVersion": "1.10",
  "buildType": "Simple",
  "fields": {
    "author": [
      "Simon Marlow"
    ],
    "bug-reports": [
      "https://github.com/simonmar/async/issues"
    ],
    "build-type": [
      "Simple"
    ],
    "cabal-version": [
      ">=1.10"
    ],
    "category": [
      "Concurrency"
    ],
    "copyright": [
      "(c) Simon Marlow 2012"
    ],
    "description": [
      "This package provides a higher-level interface over\nthreads, in which an @Async a@ is a concurrent\nthread that will eventually deliver a value of\ntype @a@.  The package provides ways to create\n@Async@ computations, wait for their results, and\ncancel them.\n.\nUsing @Async@ is safer than using threads in two\nways:\n.\n* When waiting for a thread to return a result,\nif the thread dies with an exception then the\ncaller must either re-throw the exception\n('wait') or handle it ('waitCatch'); the\nexception cannot be ignored.\n.\n* The API makes it possible to build a tree of\nthreads that are automatically killed when\ntheir parent dies (see 'withAsync')."
    ],
    "extra-source-files": [
      "changelog.md\nbench/race.hs"
    ],
    "homepage": [
      "https://github.com/simonmar/async"
    ],
    "license": [
      "BSD3"
    ],
    "license-file": [
      "LICENSE"
    ],
    "maintainer": [
      "Simon Marlow <marlowsd@gmail.com>"
    ],
    "name": [
      "async"
    ],
    "synopsis": [
      "Run IO operations asynchronously and wait for their results"
    ],
    "tested-with": [
      "GHC == 9.14.1\nGHC == 9.12.2\nGHC == 9.10.3\nGHC == 9.8.4\nGHC == 9.6.7\nGHC == 9.4.8\nGHC == 9.2.8\nGHC == 9.0.2\nGHC == 8.10.7\nGHC == 8.8.4\nGHC == 8.6.5\nGHC == 8.4.4\nGHC == 8.2.2\nGHC == 8.0.2"
    ],
    "version": [
      "2.2.6"
    ]
  },
  "components": [
    {
      "kind": "library",
      "name": "main",
      "tree": {
        "data": {
          "buildable": null,
          "exposedModules": [
            "Control.Concurrent.Async",
            "Control.Concurrent.Async.Internal",
            "Control.Concurrent.Async.Warden",
            "Control.Concurrent.Stream"
          ],
          "otherModules": [],
          "dependencies": [
            {
              "package": "base",
              "range": ">=4.3 && <4.23",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "hashable",
              "range": ">=1.1.2.0 && <1.6",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "stm",
              "range": ">=2.2 && <2.6",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "unordered-containers",
              "range": ">=0.2 && <0.3",
              "libraries": [
                "main"
              ]
            }
          ],
          "fields": {}
        },
        "branches": [
          {
            "condition": {
              "compiler": "ghc",
              "range": ">=7.1"
            },
            "then": {
              "data": {
                "buildable": null,
                "exposedModules": [],
                "otherModules": [],
                "dependencies": [],
                "fields": {}
              },
              "branches": []
            },
            "else": null
          },
          {
            "condition": {
              "flag": "debug-auto-label"
            },
            "then": {
              "data": {
                "buildable": null,
                "exposedModules": [],
                "otherModules": [],
                "dependencies": [],
                "fields": {}
              },
              "branches": []
            },
            "else": null
          }
        ]
      }
    },
    {
      "kind": "test-suite",
      "name": "test-async",
      "tree": {
        "data": {
          "buildable": null,
          "exposedModules": [],
          "otherModules": [],
          "dependencies": [
            {
              "package": "base",
              "range": "-any",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "async",
              "range": "-any",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "stm",
              "range": "-any",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "test-framework",
              "range": "-any",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "test-framework-hunit",
              "range": "-any",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "HUnit",
              "range": "-any",
              "libraries": [
                "main"
              ]
            }
          ],
          "fields": {
            "type": [
              "exitcode-stdio-1.0"
            ]
          }
        },
        "branches": []
      }
    },
    {
      "kind": "executable",
      "name": "concasync",
      "tree": {
        "data": {
          "buildable": null,
          "exposedModules": [],
          "otherModules": [],
          "dependencies": [
            {
              "package": "base",
              "range": "-any",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "async",
              "range": "-any",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "stm",
              "range": "-any",
              "libraries": [
                "main"
              ]
            }
          ],
          "fields": {}
        },
        "branches": [
          {
            "condition": {
              "not": {
                "flag": "bench"
              }
            },
            "then": {
              "data": {
                "buildable": false,
                "exposedModules": [],
                "otherModules": [],
                "dependencies": [],
                "fields": {}
              },
              "branches": []
            },
            "else": null
          }
        ]
      }
    },
    {
      "kind": "executable",
      "name": "conccancel",
      "tree": {
        "data": {
          "buildable": null,
          "exposedModules": [],
          "otherModules": [],
          "dependencies": [
            {
              "package": "base",
              "range": "-any",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "async",
              "range": "-any",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "stm",
              "range": "-any",
              "libraries": [
                "main"
              ]
            }
          ],
          "fields": {}
        },
        "branches": [
          {
            "condition": {
              "not": {
                "flag": "bench"
              }
            },
            "then": {
              "data": {
                "buildable": false,
                "exposedModules": [],
                "otherModules": [],
                "dependencies": [],
                "fields": {}
              },
              "branches": []
            },
            "else": null
          }
        ]
      }
    },
    {
      "kind": "executable",
      "name": "race",
      "tree": {
        "data": {
          "buildable": null,
          "exposedModules": [],
          "otherModules": [],
          "dependencies": [
            {
              "package": "base",
              "range": "-any",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "async",
              "range": "-any",
              "libraries": [
                "main"
              ]
            },
            {
              "package": "stm",
              "range": "-any",
              "libraries": [
                "main"
              ]
            }
          ],
          "fields": {}
        },
        "branches": [
          {
            "condition": {
              "not": {
                "flag": "bench"
              }
            },
            "then": {
              "data": {
                "buildable": false,
                "exposedModules": [],
                "otherModules": [],
                "dependencies": [],
                "fields": {}
              },
              "branches": []
            },
            "else": null
          }
        ]
      }
    }
  ],
  "setupDependencies": [],
  "flags": [
    {
      "name": "debug-auto-label",
      "default": false,
      "manual": true,
      "description": "Strictly for debugging as it might have a non-negligible overhead.\nEnabling this flag will auto-label the threads spawned by @async@. Use it to\nfind where are unlabelled threads spawned in your program (be it your code or\ndependency code)."
    },
    {
      "name": "bench",
      "default": false,
      "manual": false,
      "description": ""
    }
  ],
  "sourceRepositories": [
    {
      "kind": "head",
      "fields": {
        "location": [
          "https://github.com/simonmar/async.git"
        ],
        "type": [
          "git"
        ]
      }
    }
  ],
  "warnings": [],
  "sourceUrl": "https://hackage.haskell.org/package/async-2.2.6/async.cabal",
  "sha256": "45d5587d8a348a7e2b3f04de963fe633db49b49cde10ca1e6f834bef3baecee9",
  "importedAt": "2026-10-14T12:51:31.929Z",
  "dependencies": [
    {
      "package": "base",
      "range": ">=4.3 && <4.23",
      "libraries": [
        "main"
      ],
      "component": "library:main",
      "conditions": []
    },
    {
      "package": "hashable",
      "range": ">=1.1.2.0 && <1.6",
      "libraries": [
        "main"
      ],
      "component": "library:main",
      "conditions": []
    },
    {
      "package": "stm",
      "range": ">=2.2 && <2.6",
      "libraries": [
        "main"
      ],
      "component": "library:main",
      "conditions": []
    },
    {
      "package": "unordered-containers",
      "range": ">=0.2 && <0.3",
      "libraries": [
        "main"
      ],
      "component": "library:main",
      "conditions": []
    },
    {
      "package": "base",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "test-suite:test-async",
      "conditions": []
    },
    {
      "package": "async",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "test-suite:test-async",
      "conditions": []
    },
    {
      "package": "stm",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "test-suite:test-async",
      "conditions": []
    },
    {
      "package": "test-framework",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "test-suite:test-async",
      "conditions": []
    },
    {
      "package": "test-framework-hunit",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "test-suite:test-async",
      "conditions": []
    },
    {
      "package": "HUnit",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "test-suite:test-async",
      "conditions": []
    },
    {
      "package": "base",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "executable:concasync",
      "conditions": []
    },
    {
      "package": "async",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "executable:concasync",
      "conditions": []
    },
    {
      "package": "stm",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "executable:concasync",
      "conditions": []
    },
    {
      "package": "base",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "executable:conccancel",
      "conditions": []
    },
    {
      "package": "async",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "executable:conccancel",
      "conditions": []
    },
    {
      "package": "stm",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "executable:conccancel",
      "conditions": []
    },
    {
      "package": "base",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "executable:race",
      "conditions": []
    },
    {
      "package": "async",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "executable:race",
      "conditions": []
    },
    {
      "package": "stm",
      "range": "-any",
      "libraries": [
        "main"
      ],
      "component": "executable:race",
      "conditions": []
    }
  ],
  "exposedModules": [
    "Control.Concurrent.Async",
    "Control.Concurrent.Async.Internal",
    "Control.Concurrent.Async.Warden",
    "Control.Concurrent.Stream"
  ],
  "documents": {
    "readme": {
      "status": "missing",
      "sha256": null,
      "error": null,
      "checkedAt": "2026-10-14T12:51:32.537Z"
    },
    "changelog": {
      "status": "available",
      "sha256": "3d30ab5f3fd37e429b558a044f944ae88076a0d4b20c1c13425e5809777ecaa6",
      "error": null,
      "checkedAt": "2026-10-14T12:51:32.712Z"
    }
  },
  "documentation": {
    "id": "e1ec72e9c05cbab38776488b66048a880d53bba143fc9ed13634357cfdaae7a9",
    "plan_id": "9dceb39db9fe0a6bbc04e9e92905ab4873d87d3205faab844ad80b63840899a1",
    "provenance": "community",
    "diagnostics": 0,
    "created_at": 1791985075
  },
  "versions": [
    {
      "version": "2.2.6",
      "imported_at": "2026-10-14T12:51:31.929Z"
    }
  ]
}

Import a package

Enter a package name and an exact version from Hackage. The site contains imported versions only.