diff --git a/manifest.dhall b/manifest.dhall
index 874554c2c5d6f957b65f368ea48b1ba52925a8e3..52e3f7d09e7abb5297fec3869f8fadceafcab622 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -81,6 +81,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "asn1-types" "0.3.4"
     , callHackage "assoc" "1.0.2"
     , callHackage "async" "2.2.4"
+    , callHackage "attoparsec" "0.14.4"
     , callHackage "autodocodec" "0.2.0.1"
     , callHackage "autodocodec-schema" "0.1.0.2"
     , callHackage "autodocodec-servant-multipart" "0.0.0.0"
diff --git a/overlay.nix b/overlay.nix
index 0dbb340383c6fd9d012fbc07c153a012e21d8be4..4db0a46fe2959326f0035110c900d6a0ddd59ce0 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -45,6 +45,8 @@ final: prev: with pkgs.haskell.lib; {
 
   async = prev.callPackage (./pkgs/async.nix) { };
 
+  attoparsec = prev.callPackage (./pkgs/attoparsec.nix) { };
+
   autodocodec = prev.callPackage (./pkgs/autodocodec.nix) { };
 
   autodocodec-schema = prev.callPackage (./pkgs/autodocodec-schema.nix) { };
diff --git a/pkgs/attoparsec.nix b/pkgs/attoparsec.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ad0af0ed9e0b406ec5344139918846ff59e992a2
--- /dev/null
+++ b/pkgs/attoparsec.nix
@@ -0,0 +1,89 @@
+{ mkDerivation
+, array
+, base
+, bytestring
+, case-insensitive
+, containers
+, deepseq
+, directory
+, filepath
+, ghc-prim
+, http-types
+, lib
+, parsec
+, QuickCheck
+, quickcheck-unicode
+, scientific
+, tasty
+, tasty-bench
+, tasty-quickcheck
+, text
+, transformers
+, unordered-containers
+, vector
+}:
+mkDerivation {
+  pname = "attoparsec";
+  version = "0.14.4";
+  sha256 = "3f337fe58624565de12426f607c23e60c7b09c86b4e3adfc827ca188c9979e6c";
+  revision = "2";
+  editedCabalFile = "00jyrn2asz1kp698l3fyh19xxxz4npf1993y041x9b9cq239smn0";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    base
+    bytestring
+    containers
+    deepseq
+    ghc-prim
+    scientific
+    text
+    transformers
+  ];
+  testHaskellDepends = [
+    array
+    base
+    bytestring
+    deepseq
+    QuickCheck
+    quickcheck-unicode
+    scientific
+    tasty
+    tasty-quickcheck
+    text
+    transformers
+    vector
+  ];
+  benchmarkHaskellDepends = [
+    array
+    base
+    bytestring
+    case-insensitive
+    containers
+    deepseq
+    directory
+    filepath
+    ghc-prim
+    http-types
+    parsec
+    scientific
+    tasty-bench
+    text
+    transformers
+    unordered-containers
+    vector
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/bgamari/attoparsec";
+  description = "Fast combinator parsing for bytestrings and text";
+  license = lib.licenses.bsd3;
+  broken = false;
+}