diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,13 @@
 # Revision history for hpath-directory
 
+## 0.14.2.1 -- 2021-08-12
+
+- Make compatible with streamly 0.8.0
+
 ## 0.14.1 -- ????-??-??
 
 - add `readFileStrict`
+- improve efficiency of `readFileStrict`
 
 ## 0.14.0 -- 2020-07-04
 
diff --git a/hpath-directory.cabal b/hpath-directory.cabal
--- a/hpath-directory.cabal
+++ b/hpath-directory.cabal
@@ -1,7 +1,7 @@
 cabal-version:       >=1.10
 
 name:                hpath-directory
-version:             0.14.2
+version:             0.14.2.1
 synopsis:            Alternative to 'directory' package with ByteString based filepaths
 description:         This provides a safer alternative to the 'directory'
                      package. FilePaths are ByteString based, so this
@@ -44,7 +44,7 @@
                        , safe-exceptions     >= 0.1
                        , streamly            >= 0.7
                        , streamly-bytestring >= 0.1.2
-                       , streamly-posix      >= 0.1.0.1
+                       , streamly-posix      >= 0.1.0.2
                        , time                >= 1.8
                        , transformers
                        , unix                >= 2.5
@@ -57,6 +57,7 @@
   hs-source-dirs:      src
   default-language:    Haskell2010
   default-extensions: PackageImports
+  GHC-Options:          -Wall
 
 test-suite spec
   if os(windows)
@@ -109,6 +110,7 @@
                       , unix
                       , unix-bytestring
                       , utf8-string
+  build-tool-depends: hspec-discover:hspec-discover
   default-extensions: PackageImports
 
 source-repository head
diff --git a/src/System/Posix/RawFilePath/Directory.hs b/src/System/Posix/RawFilePath/Directory.hs
--- a/src/System/Posix/RawFilePath/Directory.hs
+++ b/src/System/Posix/RawFilePath/Directory.hs
@@ -94,7 +94,6 @@
 where
 
 
-import           Control.Applicative            ( (<$>) )
 import           Control.Exception.Safe         ( IOException
                                                 , MonadCatch
                                                 , MonadMask
@@ -108,25 +107,11 @@
                                                 , void
                                                 , when
                                                 )
-import           Control.Monad.Catch            ( MonadThrow(..) )
-import           Control.Monad.Fail             ( MonadFail )
 import           Control.Monad.IfElse           ( unlessM )
 import           Control.Monad.IO.Class         ( liftIO )
 import qualified Data.ByteString               as BS
 import           Data.ByteString                ( ByteString )
-import           Data.Traversable               ( for )
-import           Data.Functor                   ( ($>) )
-#if MIN_VERSION_bytestring(0,10,2)
-import           Data.ByteString.Builder
-#else
-import           Data.ByteString.Lazy.Builder
-#endif
-                                                ( Builder
-                                                , byteString
-                                                , toLazyByteString
-                                                )
 import qualified Data.ByteString.Lazy          as L
-import           Data.ByteString.Unsafe         ( unsafePackCStringFinalizer )
 import qualified Data.ByteString.UTF8          as UTF8
 import           Data.Foldable                  ( for_ )
 import           Data.IORef                     ( IORef
@@ -134,10 +119,6 @@
                                                 , newIORef
                                                 , readIORef
                                                 )
-import           Data.Maybe                     ( catMaybes )
-import           Data.Monoid                    ( (<>)
-                                                , mempty
-                                                )
 import           Data.Time.Clock
 import           Data.Time.Clock.POSIX          ( getPOSIXTime
                                                 , posixSecondsToUTCTime
@@ -150,9 +131,6 @@
                                                 , eXDEV
                                                 , getErrno
                                                 )
-import           Foreign.C.Types                ( CSize )
-import           Foreign.Marshal.Alloc          ( allocaBytes )
-import           Foreign.Ptr                    ( Ptr )
 import           GHC.IO.Exception               ( IOErrorType(..) )
 import           Prelude                 hiding ( appendFile
                                                 , readFile
@@ -164,14 +142,18 @@
                                                as SL
 import qualified Streamly.External.Posix.DirStream
                                                as SD
-import qualified Streamly.Data.Fold            as FL
 import           Streamly.Memory.Array
 import qualified Streamly.FileSystem.Handle    as FH
 import qualified Streamly.Internal.Data.Unfold as SU
 import qualified Streamly.Internal.FileSystem.Handle
                                                as IFH
+#if MIN_VERSION_streamly(0,8,0)
+import qualified Streamly.Internal.Data.Array.Stream.Foreign
+                                               as AS
+#else
 import qualified Streamly.Internal.Memory.ArrayStream
                                                as AS
+#endif
 import qualified Streamly.Prelude              as S
 import qualified System.IO                     as SIO
 import           System.IO.Error                ( catchIOError
@@ -187,8 +169,6 @@
                                                 , openDirStream
                                                 , removeDirectory
                                                 )
-import           System.Posix.RawFilePath.Directory.Traversals
-                                                ( getDirectoryContents' )
 import           System.Posix.Files.ByteString  ( createSymbolicLink
                                                 , fileAccess
                                                 , fileMode
@@ -208,7 +188,6 @@
                                                 , setFileMode
                                                 , unionFileModes
                                                 )
-import qualified System.Posix.FilePath         as FP
 import qualified System.Posix.Files.ByteString as PF
 import qualified "unix" System.Posix.IO.ByteString
                                                as SPI
@@ -222,7 +201,6 @@
                                                as SPP
 import           System.Posix.Types             ( FileMode
                                                 , ProcessID
-                                                , Fd
                                                 , EpochTime
                                                 )
 import           System.Posix.Time
@@ -895,7 +873,7 @@
 readFileStrict :: RawFilePath -> IO BS.ByteString
 readFileStrict path = do
   stream <- readFileStream path
-  fmap fromArray $ S.foldr (<>) mempty stream
+  fromArray <$> AS.toArray stream
 
 
 -- | Open the given file as a filestream. Once the filestream
