diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.2.0.1
+
+  * Use `dir-traverse` to provide recursive directory traversal
+
 # 0.2.0.0
 
   * Add `unpackFileToDirAndDecompress`
diff --git a/archive-sig.cabal b/archive-sig.cabal
--- a/archive-sig.cabal
+++ b/archive-sig.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.0
 name: archive-sig
-version: 0.2.0.0
+version: 0.2.0.1
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2019 Vanessa McHale
@@ -29,17 +29,13 @@
         Archive.Compression
     signatures: Archive
     hs-source-dirs: src
-    other-modules:
-        System.Directory.Recursive
     default-language: Haskell2010
     ghc-options: -Wall
     build-depends:
         base >=4.3 && <5,
         bytestring -any,
-        directory -any,
-        bytestring -any,
         composition-prelude >=2.0.3.0,
-        filepath -any
+        dir-traverse -any
 
     if flag(development)
         ghc-options: -Werror
diff --git a/src/System/Directory/Recursive.hs b/src/System/Directory/Recursive.hs
deleted file mode 100644
--- a/src/System/Directory/Recursive.hs
+++ /dev/null
@@ -1,21 +0,0 @@
-module System.Directory.Recursive ( getDirRecursive ) where
-
-import           Control.Composition ((.*))
-import           Control.Monad       (filterM)
-import           Data.Foldable       (fold)
-import           System.Directory    (doesDirectoryExist, getDirectoryContents)
-import           System.FilePath     ((</>))
-
-getDirRecursive :: FilePath -> IO [FilePath]
-getDirRecursive fp = do
-    all' <- exclude <$> getDirectoryContents fp
-    dirs <- exclude <$> filterM doesDirectoryExist (mkRel <$> all')
-    case dirs of
-        [] -> pure (mkRel <$> all')
-        ds -> do
-            next <- foldMapA getDirRecursive ds
-            pure $ next <> (mkRel <$> all')
-
-    where foldMapA = fmap fold .* traverse
-          exclude = filter (\x -> x /= "." && x /= "..")
-          mkRel = (fp </>)
