Updated README.rst

This commit is contained in:
Tatsuhiro Tsujikawa 2012-02-08 02:13:01 +09:00
parent fd0e91b082
commit 0e56709a24
1 changed files with 61 additions and 18 deletions

View File

@ -4,10 +4,36 @@ Spdylay - SPDY C Library
This is an experimental implementation of Google's SPDY protocol This is an experimental implementation of Google's SPDY protocol
version 2 in C. version 2 in C.
The current status of development is in very early stage. But there The current status of development is in a beta stage now. As described
is a demo program ``spdycat`` in *examples* directory, which can below, we can create SPDY client and server with the current Spdylay
connect to SPDY-capable server via SSL and select spdy/2 with NPN and API.
get a resource given in the command-line::
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
<http://technotes.googlecode.com/git/nextprotoneg.html>`_ 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/ $ ./spdycat -vn https://www.google.com/
[ 0.029] NPN select next protocol: the remote server offers: [ 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 <version=2, flags=0, length=4> [ 0.094] send GOAWAY frame <version=2, flags=0, length=4>
(last_good_stream_id=0) (last_good_stream_id=0)
Please note that OpenSSL with SPDY server is called ``spdyd``. It is a non-blocking server and only
`NPN <http://technotes.googlecode.com/git/nextprotoneg.html>`_ serves static contents. It only speaks ``spdy/2``::
support is required in order to build and run ``spdycat``.
============== $ ./spdyd --htdocs=/your/htdocs/ -v 3000 server.key server.crt
Build from git The negotiated next protocol: spdy/2
============== [id=1] [ 1.633] recv SYN_STREAM frame <version=2, flags=1, length=99>
(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 <version=2, flags=0, length=126>
(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 <version=2, flags=0, length=4>
(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 Currently, ``spdyd`` depends on ``epoll`` facility which is only
used.:: exists on Linux. I'll add ``kqueue`` support.
$ autoreconf -i
$ automake
$ autoconf
$ ./configure
$ make