diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,2 +1,9 @@
+Version 0.0.2.0 2020-05-21 by luispedro
+	* Do not stop if an empty bytestring is present in the stream (PR #1 by
+	Kamil Dworakowski)
+
+Version 0.0.1.1 2018-09-23 by luispedro
+	* Update to newer conduit API
+
 Version 0.0.1 2018-02-12 by luispedro
 	* First version
diff --git a/Data/Conduit/Zstd.hs b/Data/Conduit/Zstd.hs
--- a/Data/Conduit/Zstd.hs
+++ b/Data/Conduit/Zstd.hs
@@ -26,8 +26,12 @@
 go (Z.Produce r next) = do
     C.yield r
     liftIO next >>= go
-go (Z.Consume f) = do
+go input@(Z.Consume f) = do
     next <- C.await
-    liftIO (f $ fromMaybe B.empty next) >>= go
+    case next of
+      Just chunk | B.null chunk ->
+        go input
+      _ ->
+        liftIO (f $ fromMaybe B.empty next) >>= go
 go (Z.Error m e) = liftIO (throwIO $ userError ("ZStandard error :" ++ m ++ ": " ++ e))
 go (Z.Done r) = C.yield r
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,5 +1,10 @@
 # ZStandard conduit wrappers
 
+[![Hackage](https://img.shields.io/hackage/v/conduit-zstd.svg)](https://hackage.haskell.org/package/conduit-zstd)
+[![Hackage-Deps](https://img.shields.io/hackage-deps/v/conduit-zstd.svg)](http://packdeps.haskellers.com/feed?needle=conduit-zstd)
+[![Travis](https://api.travis-ci.com/luispedro/conduit-zstd.png)](https://travis-ci.com/luispedro/conduit-zstd)
+ZStandard compression as a Conduit
+
 Very thin wrapper around the
 [hs-zstd](https://github.com/facebookexperimental/hs-zstd) Haskell bindings for
 the [ZStandard compresssion library](http://facebook.github.io/zstd/).
diff --git a/conduit-zstd.cabal b/conduit-zstd.cabal
--- a/conduit-zstd.cabal
+++ b/conduit-zstd.cabal
@@ -1,11 +1,13 @@
--- This file has been generated from package.yaml by hpack version 0.28.2.
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.31.2.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 94312fcbf7a04a82f6bd1d17999b3a961a652668f01575cccbffe4a5ece400b5
+-- hash: d730a92da866d784257a2ed593c3cb0ab481913627b9558c473171afbf32f4e8
 
 name:           conduit-zstd
-version:        0.0.1.1
+version:        0.0.2.0
 synopsis:       Conduit-based ZStd Compression
 description:    Zstandard compression packaged as a conduit. This is a very thin wrapper around the [official hs-zstd interface](https://github.com/facebookexperimental/hs-zstd/)
 category:       Conduit
@@ -16,10 +18,9 @@
 license:        MIT
 license-file:   COPYING
 build-type:     Simple
-cabal-version:  >= 1.10
 extra-source-files:
-    ChangeLog
     README.md
+    ChangeLog
 
 source-repository head
   type: git
@@ -49,16 +50,15 @@
   default-extensions: BangPatterns OverloadedStrings LambdaCase TupleSections
   ghc-options: -Wall
   build-depends:
-      HUnit
-    , base >4.8 && <5
+      base >4.8 && <5
     , bytestring
     , conduit
     , conduit-combinators
     , conduit-extra
     , conduit-zstd
     , directory
-    , test-framework
-    , test-framework-hunit
-    , test-framework-th
+    , quickcheck-instances
+    , tasty
+    , tasty-quickcheck
     , zstd
   default-language: Haskell2010
diff --git a/tests/Tests.hs b/tests/Tests.hs
--- a/tests/Tests.hs
+++ b/tests/Tests.hs
@@ -4,22 +4,21 @@
 {-# LANGUAGE TemplateHaskell, QuasiQuotes, FlexibleContexts, OverloadedStrings #-}
 module Main where
 
-import Test.Framework.TH
-import Test.HUnit
-import Test.Framework.Providers.HUnit
+import Test.Tasty
+import Test.Tasty.QuickCheck
+import Test.QuickCheck.Instances ()
 
 import qualified Data.ByteString as B
-import qualified Data.Conduit as C
-import qualified Data.Conduit.Combinators as CC
-import qualified Data.Conduit.List as CL
-import           Data.Conduit ((.|))
+import Conduit
+import Data.Conduit.List (sourceList)
 
-import qualified Data.Conduit.Zstd as CZ
+import Data.Conduit.Zstd
 
-main :: IO ()
-main = $(defaultMainGenerator)
+tests :: TestTree
+tests =
+  testProperty "roundtrip" $ \input -> ioProperty $ do
+    output' <- runConduit (sourceList input .| compress 1 .| decompress .| sinkList)
+    pure $ B.concat input === B.concat output'
 
-case_basic :: IO ()
-case_basic = do
-    hello <- B.concat <$> (C.runConduitRes (CC.yieldMany ["Hello", " ", "World"] .| CZ.compress 2 .| CZ.decompress .| CL.consume))
-    hello @?= "Hello World"
+main :: IO ()
+main = defaultMain tests
