diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # bzip-signature
 
+## 0.1.1.0
+
+ * Add `BZip.File` module
+
 ## 0.1.0.0
 
 Initial release
diff --git a/bzip-signature.cabal b/bzip-signature.cabal
--- a/bzip-signature.cabal
+++ b/bzip-signature.cabal
@@ -1,6 +1,6 @@
 cabal-version:   2.0
 name:            bzip-signature
-version:         0.1.0.0
+version:         0.1.1.0
 license:         BSD3
 license-file:    LICENSE
 copyright:       Copyright: (c) 2020 Vanessa McHale
@@ -20,10 +20,12 @@
     subdir:   bzip-signature
 
 library
+    exposed-modules:  BZip.File
     signatures:       BZip
     hs-source-dirs:   src
     default-language: Haskell2010
     ghc-options:      -Wall
     build-depends:
-        base >=4.3 && <5,
-        bytestring -any
+        base >=4.10 && <5,
+        bytestring -any,
+        composition-prelude >=2.0.5.0
diff --git a/src/BZip/File.hs b/src/BZip/File.hs
new file mode 100644
--- /dev/null
+++ b/src/BZip/File.hs
@@ -0,0 +1,16 @@
+-- | @since 0.1.1.0
+module BZip.File ( decompressFromFile
+                 , compressToFile
+                 ) where
+
+import           BZip
+import           Control.Composition  ((.@))
+import qualified Data.ByteString.Lazy as BSL
+
+-- | Read data from a compressed file
+decompressFromFile :: FilePath -> IO BSL.ByteString
+decompressFromFile = fmap decompress . BSL.readFile
+
+-- | Write data to a compressed file
+compressToFile :: FilePath -> BSL.ByteString -> IO ()
+compressToFile = compress .@ BSL.writeFile
