From 0e56709a24490501bb3b1d116211e1ef7eaec611 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Wed, 8 Feb 2012 02:13:01 +0900 Subject: [PATCH] Updated README.rst --- README.rst | 79 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 61 insertions(+), 18 deletions(-) diff --git a/README.rst b/README.rst index f9dfa331..ea865d5e 100644 --- a/README.rst +++ b/README.rst @@ -4,10 +4,36 @@ Spdylay - SPDY C Library This is an experimental implementation of Google's SPDY protocol version 2 in C. -The current status of development is in very early stage. But there -is a demo program ``spdycat`` in *examples* directory, which can -connect to SPDY-capable server via SSL and select spdy/2 with NPN and -get a resource given in the command-line:: +The current status of development is in a beta stage now. As described +below, we can create SPDY client and server with the current Spdylay +API. + +Build from git +-------------- + +Building from git is easy, but please be sure that at least autoconf 2.68 is +used.:: + + $ autoreconf -i + $ automake + $ autoconf + $ ./configure + $ make + +Examples +-------- + +*examples* directory contains SPDY client and server implementation +using Spdylay. These programs are intended to make sure that Spdylay +API is acutally usable for real implementation and also for debugging +purposes. Please note that OpenSSL with `NPN +`_ support is +required in order to build and run these programs. At the time of +this writing, the Beta 2 of OpenSSL 1.0.1 supports NPN. + +SPDY client is called ``spdycat``. It is a dead simple downloader like +wget/curl. It connects to SPDY server and gets resources given in the +command-line:: $ ./spdycat -vn https://www.google.com/ [ 0.029] NPN select next protocol: the remote server offers: @@ -42,19 +68,36 @@ get a resource given in the command-line:: [ 0.094] send GOAWAY frame (last_good_stream_id=0) -Please note that OpenSSL with -`NPN `_ -support is required in order to build and run ``spdycat``. +SPDY server is called ``spdyd``. It is a non-blocking server and only +serves static contents. It only speaks ``spdy/2``:: -============== -Build from git -============== + $ ./spdyd --htdocs=/your/htdocs/ -v 3000 server.key server.crt + The negotiated next protocol: spdy/2 + [id=1] [ 1.633] recv SYN_STREAM frame + (stream_id=1, assoc_stream_id=0, pri=3) + host: localhost:3000 + method: GET + scheme: https + url: / + user-agent: spdylay/0.0.0 + version: HTTP/1.1 + [id=1] [ 1.633] send SYN_REPLY frame + (stream_id=1) + cache-control: max-age=3600 + content-length: 8472 + date: Mon, 16 Jan 2012 12:46:27 GMT + last-modified: Mon, 16 Jan 2012 12:46:27 GMT + server: spdyd spdylay/0.1.0 + status: 200 OK + version: HTTP/1.1 + [id=1] [ 1.633] send DATA frame (stream_id=1, flags=0, length=4104) + [id=1] [ 1.633] send DATA frame (stream_id=1, flags=0, length=4104) + [id=1] [ 1.633] send DATA frame (stream_id=1, flags=0, length=288) + [id=1] [ 1.633] send DATA frame (stream_id=1, flags=1, length=8) + [id=1] [ 1.633] stream_id=1 closed + [id=1] [ 1.634] recv GOAWAY frame + (last_good_stream_id=0) + [id=1] [ 1.634] closed -Building from git is easy, but please be sure that at least autoconf 2.68 is -used.:: - - $ autoreconf -i - $ automake - $ autoconf - $ ./configure - $ make +Currently, ``spdyd`` depends on ``epoll`` facility which is only +exists on Linux. I'll add ``kqueue`` support.