You are looking at historical revision 31933 of this page. It may differ significantly from its current revision.
hpack
Description
A HTTP/2 header compression library for Chicken
Author
Omar Shorbaji
Requirements
Requires the defstruct
API
(make-hpack-decoder)
returns a function that accepts a string and returns a list of headers decoded.
(make-hpack-encoder)
returns a function that accepts a list of headers and returns an HPACK string. The function takes an optional argument telling it whether to index headers when possible or not. Note that a header is a pair of a symbol and a string
Examples
(define encode (make-hpack-encoder))
(define headers
'((:authority . "127.0.0.1") (:method . "GET") (:scheme . "http") (:path . "/") (foo . "bar")))
(encode headers) => "A�\b�\\\v�p����@���\x03bar"
(encode headers index: #f) => "\x11�\b�\\\v�p����\x10���\x03bar"
(define (decode (make-hpack-decoder)))
(decode (encode headers))
=> ((:authority . "127.0.0.1")
(:method . "GET") (:scheme . "http") (:path . "/") (foo . "bar"))
License
;; Copyright (c) 2014, Omar Shorbaji
- ; All rights reserved.
- ;
- ; Redistribution and use in source and binary forms, with or without
- ; modification, are permitted provided that the following conditions are met
- ;
- ; Redistributions of source code must retain the above copyright notice, this
- ; list of conditions and the following disclaimer.
- ; Redistributions in binary form must reproduce the above copyright notice,
- ; this list of conditions and the following disclaimer in the documentation
- ; and/or other materials provided with the distribution.
- ; Neither the name of the author nor the names of its contributors may be
- ; used to endorse or promote products derived from this software without
- ; specific prior written permission.
- ;
- ; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- ; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- ; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
- ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OFcl
- ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- ; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- ; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- ; POSSIBILITY OF SUCH DAMAGE.
- ; Implements draft 9 of HPACK - Header Compression for HTTP/2
- ; draft-ietf-httpbis-header-compression-09
- ; reference
- http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09
Version History
0.1 alpha release