diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index db983aeb17569d87e0fe53ea43b17d2d5a42054b..5f3aea27ba1bb799cfd3c8fae6af3f35188ac799 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,6 +18,7 @@ build:
          - hint
          - optics
          - pipes
+         - pipes-bytestring
          - pipes-group
          - pipes-parse
          - polysemy
diff --git a/README.md b/README.md
index e300522c4b11dfe538bfad38ee2e44a82969bc77..09286c0cd1157e7b2dee921b48be60c4b3aabf19 100644
--- a/README.md
+++ b/README.md
@@ -29,6 +29,7 @@ This package set has the following policy.
   * servant-client
   * servant-server
   * pipes
+  * pipes-bytestring
   * pipes-group
   * pipes-parse
   * sdl2
diff --git a/horizon.dhall b/horizon.dhall
index 4ee540c6ec299a2a0d307ab98ad4fe26a3074656..a5f5d849fba3a02e5e7fb0caa09ebe9e47ba908d 100644
--- a/horizon.dhall
+++ b/horizon.dhall
@@ -92,6 +92,7 @@ let packages =
       , persistent-template = H.callHackage "persistent-template" "2.12.0.0"
       , persistent-test = H.callHackage "persistent-test" "2.13.1.3"
       , pipes = H.callHackage "pipes" "4.3.16"
+      , pipes-bytestring = H.callHackage "pipes-bytestring" "2.1.7"
       , pipes-group = H.callHackage "pipes-group" "1.0.12"
       , pipes-parse = H.callHackage "pipes-parse" "3.0.9"
       , polyparse = H.callHackage "polyparse" "1.13"
diff --git a/horizon.lock b/horizon.lock
index 8f37f5b02f804188957e596b373420f4fe0dca6f..97d844fbdc288acc80a839fae71ddb0bcb5c4504 100644
--- a/horizon.lock
+++ b/horizon.lock
@@ -314,6 +314,10 @@
   , mapValue =
       "33609f97d1ad3e9648a25e56bc34377a66aef1417ec854bfdd19a098d24eea0c"
   }
+, { mapKey = "pipes-bytestring"
+  , mapValue =
+      "b751d522f7d5b1c4ad8b17b689d9281cf094a873c71ecf9009507706376487e3"
+  }
 , { mapKey = "pipes-group"
   , mapValue =
       "a55f31a360fe5f2604cabac86cedcb99e652942323a875d2d109f0c2d2aa42af"
diff --git a/overlay.nix b/overlay.nix
index 86983bfd438578f85c9b409d7983a066d5aed271..bf6063c01dc37c87dee48f57ab5fa32a34377423 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -160,6 +160,8 @@ final: prev: with pkgs.haskell.lib; {
 
   pipes = f final prev "pipes" (final.callPackage (./pkgs/pipes.nix) { });
 
+  pipes-bytestring = f final prev "pipes-bytestring" (final.callPackage (./pkgs/pipes-bytestring.nix) { });
+
   pipes-group = f final prev "pipes-group" (final.callPackage (./pkgs/pipes-group.nix) { });
 
   pipes-parse = f final prev "pipes-parse" (final.callPackage (./pkgs/pipes-parse.nix) { });
diff --git a/pkgs/pipes-bytestring.nix b/pkgs/pipes-bytestring.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c967fe0564f79e06ed28a22a936b6d52278bec31
--- /dev/null
+++ b/pkgs/pipes-bytestring.nix
@@ -0,0 +1,27 @@
+{ mkDerivation, base, bytestring, lib, pipes, pipes-group
+, pipes-parse, stringsearch, transformers
+}:
+mkDerivation {
+  pname = "pipes-bytestring";
+  version = "2.1.7";
+  sha256 = "6c77863e8ad809f3b86e9e0cf8c553056a8ef12bb2691f8031c5917d0b090732";
+  revision = "3";
+  editedCabalFile = "0a5mp98prbpn5pqpab0h3xinhh9vnjqhlss44zq9dbvxw14agxak";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base bytestring pipes pipes-group pipes-parse stringsearch
+    transformers
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = true;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "ByteString support for pipes";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
\ No newline at end of file