diff --git a/steam/util/binary.py b/steam/util/binary.py
index <HASH>..<HASH> 100644
--- a/steam/util/binary.py
+++ b/steam/util/binary.py
@@ -8,10 +8,21 @@ class StructReader(object):
         :type  data: :class:`bytes`
         """
         if not isinstance(data, bytes):
-            raise ValueError("Requires bytes")
+            raise ValueError("Only works with bytes")
         self.data = data
         self.offset = 0
 
+    def __len__(self):
+        return len(self.data)
+
+    def rlen(self):
+        """Number of remaining bytes that can be read
+
+        :return: number of remaining bytes
+        :rtype: :class:`int`
+        """
+        return max(0, len(self) - self.offset)
+
     def read(self, n=1):
         """Return n bytes
StructReader: added __len__() and rlen()