diff --git a/lib/py/src/transport/THttpClient.py b/lib/py/src/transport/THttpClient.py
new file mode 100644
index 0000000..7b39b63
--- /dev/null
+++ b/lib/py/src/transport/THttpClient.py
@@ -0,0 +1,51 @@
+from TTransport import *
+from cStringIO import StringIO
+
+import httplib
+
+class THttpClient(TTransportBase):
+
+  """Http implementation of TTransport base."""
+
+  def __init__(self, host, port, uri):
+    self.host = host
+    self.port = port
+    self.uri = uri
+    self.__wbuf = StringIO()
+    self.__http = None
+
+  def open(self):
+    self.__http = httplib.HTTP(self.host, self.port)
+
+  def close(self):
+    self.__http.close()
+    self.__http = None
+    
+  def isOpen(self):
+    return self.__http != None
+
+  def read(self, sz):
+    return self.__http.file.read(sz)
+
+  def write(self, buf):
+    self.__wbuf.write(buf)
+
+  def flush(self):
+    # Pull data out of buffer
+    data = self.__wbuf.getvalue()
+    self.__wbuf = StringIO()
+
+    # HTTP request
+    self.__http.putrequest('POST', self.uri)
+
+    # Write headers
+    self.__http.putheader('Host', self.host)
+    self.__http.putheader('Content-Type', 'application/x-thrift')
+    self.__http.putheader('Content-Length', str(len(data)))
+    self.__http.endheaders()
+
+    # Write payload
+    self.__http.send(data)
+
+    # Get reply to flush the request
+    self.code, self.message, self.headers = self.__http.getreply()
diff --git a/lib/py/src/transport/__init__.py b/lib/py/src/transport/__init__.py
index fb50c8b..b45e718 100644
--- a/lib/py/src/transport/__init__.py
+++ b/lib/py/src/transport/__init__.py
@@ -1 +1 @@
-__all__ = ["TTransport", "TSocket"]
+__all__ = ['TTransport', 'TSocket', 'THttpClient']
