diff --git a/python/MANIFEST.in b/python/MANIFEST.in new file mode 100644 index 00000000..15e924f2 --- /dev/null +++ b/python/MANIFEST.in @@ -0,0 +1 @@ +include spdylay.pyx cspdylay.pxd spdylay_tests.py spdyclient.py spdyserv.py README.rst diff --git a/python/README.rst b/python/README.rst new file mode 100644 index 00000000..071de2a1 --- /dev/null +++ b/python/README.rst @@ -0,0 +1,84 @@ +Python-spdylay is a Python SPDY library on top of Spdylay C +library. It supports SPDY/2 and SPDY/3 protocol. + +It does not perform any I/O operations. When the library needs them, +it calls the callback functions provided by the application. It also +does not include any event polling mechanism, so the application can +freely choose the way of handling events. + +It provides almost all API Spdylay provides with Pythonic fashion. + +The core library API works with Python 2 and 3. But +``ThreadedSPDYServer`` requires Python 3.3 because it uses TLS NPN +extension. + +Installation +============ + +First install Spdylay library. You can grab a source distribution from +`sf.net download page +`_ +or `clone git repository `_. + +See `Spdylay documentation +`_ for the +required packages and how to build Spdylay from git repository. + +After Spdylay is installed, run ``build_ext`` command to build +extension module:: + + $ python setup.py build_ext + +If you installed Spdylay library in other than standard location, use +``--include-dirs`` and ``--library-dirs`` to specify header file and +library locations respectively. + +Documentation +============= + +See `python-spdylay documentation +`_. + +Samples +======= + +Here is a simple SPDY server:: + + #!/usr/bin/env python + + # The example SPDY server. Python 3.3 or later is required because TLS + # NPN is used in spdylay.ThreadedSPDYServer. Put private key and + # certificate file in the current working directory. + + import spdylay + + # private key file + KEY_FILE='server.key' + # certificate file + CERT_FILE='server.crt' + + class MySPDYRequestHandler(spdylay.BaseSPDYRequestHandler): + + def do_GET(self): + self.send_response(200) + self.send_header('content-type', 'text/html; charset=UTF-8') + + content = '''\ + + SPDY FTW + +

SPDY FTW

+

The age of HTTP/1.1 is over. The time of SPDY has come.

+ + '''.encode('UTF-8') + + self.wfile.write(content) + + if __name__ == "__main__": + HOST, PORT = "localhost", 3000 + + server = spdylay.ThreadedSPDYServer((HOST, PORT), + MySPDYRequestHandler, + cert_file=CERT_FILE, + key_file=KEY_FILE) + server.start()