diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog for `mempack`
 
+## 0.2.1.0
+
+* Support building with `wasm`
+
 ## 0.2.0.0
 
 * Add `mkBuffer`, `bufferHasToBePinned` and `packBuffer`
diff --git a/mempack.cabal b/mempack.cabal
--- a/mempack.cabal
+++ b/mempack.cabal
@@ -1,5 +1,5 @@
 name:                mempack
-version:             0.2.0.0
+version:             0.2.1.0
 synopsis:            Short description
 description:         Please see the README on GitHub at <https://github.com/lehins/mempack#readme>
 homepage:            https://github.com/lehins/mempack
@@ -23,6 +23,7 @@
                    , GHC == 9.8.4
                    , GHC == 9.10.3
                    , GHC == 9.12.2
+                   , GHC == 9.14.1
 
 library
   hs-source-dirs:      src
@@ -70,11 +71,14 @@
     build-depends:     data-array-byte
 
   default-language:   Haskell2010
-  ghc-options:        -Wall
-                      -Wincomplete-record-updates
-                      -Wincomplete-uni-patterns
-                      -Wredundant-constraints
-                      -fno-warn-orphans
+  ghc-options:
+                    -Wall
+                    -Wincomplete-record-updates
+                    -Wincomplete-uni-patterns
+                    -Wredundant-constraints
+                    -fno-warn-orphans
+  if !arch(wasm32)
+    ghc-options:
                       -threaded
                       -with-rtsopts=-N2
 
@@ -82,10 +86,14 @@
   type:                exitcode-stdio-1.0
   hs-source-dirs:      bench
   main-is:             Bench.hs
-  ghc-options:         -Wall
-                       -threaded
-                       -O2
-                       -with-rtsopts=-N
+  ghc-options:
+                    -Wall
+                     -O2
+  if !arch(wasm32)
+    ghc-options:
+                      -threaded
+                      -with-rtsopts=-N
+
   build-depends:       base
                      , avro >= 0.5.1
                      , binary
diff --git a/tests/Test/Common.hs b/tests/Test/Common.hs
--- a/tests/Test/Common.hs
+++ b/tests/Test/Common.hs
@@ -43,9 +43,14 @@
   {-# INLINE uniformShortByteString #-}
 #endif
 
+#if !MIN_VERSION_QuickCheck(2,17,0)
 instance Arbitrary ByteArray where
   arbitrary = qcByteArray . getNonNegative =<< arbitrary
 
+qcByteArray :: Int -> Gen ByteArray
+qcByteArray n = byteArrayFromShortByteString <$> qcShortByteString n
+#endif
+
 instance Arbitrary ByteString where
   arbitrary = qcByteString . getNonNegative =<< arbitrary
 
@@ -73,9 +78,6 @@
   arbitrary = do
     v <- VG.fromList <$> arbitrary
     frequency [(5, pure v), (5, flip VS.drop v . getNonNegative <$> arbitrary)]
-
-qcByteArray :: Int -> Gen ByteArray
-qcByteArray n = byteArrayFromShortByteString <$> qcShortByteString n
 
 qcByteString :: Int -> Gen ByteString
 qcByteString n = uniformByteStringM (fromIntegral n) QC
