diff --git a/CHANGELOG b/CHANGELOG
index 6164bf2..2603dd4 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -9,6 +9,19 @@ All notable changes to this code base will be documented in this file,
 in every released version.
 
 
+Version NEXT
+============
+
+:Released: FUTURE
+:Maintainer: UNKNOWN <unknown>
+
+Additions
+---------
+
+* Add ‘parse_version_info’ to parse a version string to a version info
+  tuple.
+
+
 Version 2.6.0
 =============
 
diff --git a/README.rst b/README.rst
index 1073910..ecc95e1 100644
--- a/README.rst
+++ b/README.rst
@@ -43,6 +43,20 @@ This module provides just couple of functions, main of which are:
     False
     >>> semver.format_version(3, 4, 5, 'pre.2', 'build.4')
     '3.4.5-pre.2+build.4'
+    >>> version_parts = semver.parse("3.4.5-pre.2+build.4")
+    >>> version_parts == {
+    ...     'major': 3, 'minor': 4, 'patch': 5,
+    ...     'prerelease': 'pre.2', 'build': 'build.4'}
+    True
+    >>> version_info = semver.parse_version_info("3.4.5-pre.2+build.4")
+    >>> version_info
+    VersionInfo(major=3, minor=4, patch=5, prerelease='pre.2', build='build.4')
+    >>> version_info.major
+    3
+    >>> version_info > (1, 0)
+    True
+    >>> version_info < (3, 5)
+    True
     >>> semver.bump_major("3.4.5")
     '4.0.0'
     >>> semver.bump_minor("3.4.5")
diff --git a/semver.py b/semver.py
index ead1628..d9d9950 100644
--- a/semver.py
+++ b/semver.py
@@ -1,8 +1,11 @@
 """
 Python helper for Semantic Versioning (http://semver.org/)
 """
+
+import collections
 import re
 
+
 __version__ = '2.6.0'
 __author__ = 'Konstantine Rybnikov'
 __author_email__ = 'k-bx@k-bx.com'
@@ -28,13 +31,28 @@ def parse(version):
     if match is None:
         raise ValueError('%s is not valid SemVer string' % version)
 
-    verinfo = match.groupdict()
+    version_parts = match.groupdict()
 
-    verinfo['major'] = int(verinfo['major'])
-    verinfo['minor'] = int(verinfo['minor'])
-    verinfo['patch'] = int(verinfo['patch'])
+    version_parts['major'] = int(version_parts['major'])
+    version_parts['minor'] = int(version_parts['minor'])
+    version_parts['patch'] = int(version_parts['patch'])
 
-    return verinfo
+    return version_parts
+
+
+VersionInfo = collections.namedtuple(
+        'VersionInfo', 'major minor patch prerelease build')
+
+def parse_version_info(version):
+    """
+    Parse version string to a VersionInfo instance.
+    """
+    parts = parse(version)
+    version_info = VersionInfo(
+            parts['major'], parts['minor'], parts['patch'],
+            parts['prerelease'], parts['build'])
+
+    return version_info
 
 
 def compare(ver1, ver2):