HTTP-draft-04/2.0 implementation in C

Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> Sun, 28 July 2013 16:55 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6586921F99D0 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 28 Jul 2013 09:55:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.598
X-Spam-Level:
X-Spam-Status: No, score=-10.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id L48Ppp9RBVzD for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 28 Jul 2013 09:55:20 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id A2F4E21F9B60 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 28 Jul 2013 09:55:20 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1V3UEG-0004Gz-Kf for ietf-http-wg-dist@listhub.w3.org; Sun, 28 Jul 2013 16:53:56 +0000
Resent-Date: Sun, 28 Jul 2013 16:53:56 +0000
Resent-Message-Id: <E1V3UEG-0004Gz-Kf@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <tatsuhiro.t@gmail.com>) id 1V3UE7-0004GJ-QG for ietf-http-wg@listhub.w3.org; Sun, 28 Jul 2013 16:53:47 +0000
Received: from mail-ob0-f181.google.com ([209.85.214.181]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <tatsuhiro.t@gmail.com>) id 1V3UE6-0005w6-R4 for ietf-http-wg@w3.org; Sun, 28 Jul 2013 16:53:47 +0000
Received: by mail-ob0-f181.google.com with SMTP id dn14so7567809obc.12 for <ietf-http-wg@w3.org>; Sun, 28 Jul 2013 09:53:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=inol2xF39GSY/L+3+HQ33f2/8Q4oMIlKQLV5awJyabo=; b=rRgyNRZm1mVer0whu+QA/tNIiX3W5iGMlbszoxptCqtxIm5C1JHHYYFoSfsSw1XZIc buU17YyJyaDbH5XFbbf7u4yNJD2OMu56HcwAbcmlX45gKaUkBuvmXqLXWKIr7fmQ/Rjh qwdW1FubQbLDhs3Y8mnm+YTFjt/M4YCtglREBf0SuIcfCBu5bdXE6bqhQOkodWKjP9Te LNMCPPwPhy+ri36ZEzHGmpoXTDQJhqJT9fyTmEfxoKaeHiRs/DGSTOFfcalelwzAhhQ9 lFy6/B7UMyJcj1blPbh60VV8e3sf4aIiIffF4qewM1f7rgiVi8O4T/d7gfpsF0sQUiii bldw==
X-Received: by 10.42.228.68 with SMTP id jd4mr21572529icb.44.1375030400795; Sun, 28 Jul 2013 09:53:20 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.64.32.103 with HTTP; Sun, 28 Jul 2013 09:53:00 -0700 (PDT)
From: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
Date: Mon, 29 Jul 2013 01:53:00 +0900
Message-ID: <CAPyZ6=J8LH09P0gD=dq8hmsoeiHKRJOO8-FwB5=t8jwf-Fj1cQ@mail.gmail.com>
To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="001a11c3a304984b1b04e29536ad"
Received-SPF: pass client-ip=209.85.214.181; envelope-from=tatsuhiro.t@gmail.com; helo=mail-ob0-f181.google.com
X-W3C-Hub-Spam-Status: No, score=-4.4
X-W3C-Hub-Spam-Report: AWL=-1.699, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1V3UE6-0005w6-R4 848406d5f753b79d09b7eae7e99092d3
X-Original-To: ietf-http-wg@w3.org
Subject: HTTP-draft-04/2.0 implementation in C
Archived-At: <http://www.w3.org/mid/CAPyZ6=J8LH09P0gD=dq8hmsoeiHKRJOO8-FwB5=t8jwf-Fj1cQ@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/18951
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

I'm working on implementing draft-04 in C based on spdylay[1] library.
The code is open sourced and hosted at:
https://github.com/tatsuhiro-t/nghttp2
It currently lacks header continuation, ALPN and HTTP Upgrade but other
components work. For TLS, we use NPN instead of ALPN for now.

The project provides client, server and proxy. The client and server output
sent and received frame information, so they would be useful for
implementors to debug their implementation. The proxy can run as reverse
proxy for the existing web server and acts like SSL/TLS terminator and can
offer HTTP-draft-04/2.0, SPDY and HTTP/1.1 via NPN, so may be useful for
debugging using existing web servers/services.

[1] http://spdylay.sourceforge.net/

Best regards,

Tatsuhiro Tsujikawa