summary refs log tree commit diff
path: root/gnu/packages/web.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <ricardo.wurmus@mdc-berlin.de>2017-05-15 16:01:20 +0200
committerRicardo Wurmus <rekado@elephly.net>2017-05-15 21:24:43 +0200
commit751f8582b5051c57a1c23b438d6a295902828fcf (patch)
treecd16bbfc96e6302b45f4e62805cf746ad195be9d /gnu/packages/web.scm
parent504c285d1092c9b7a2ef25c7a436da02bef70dc2 (diff)
downloadguix-751f8582b5051c57a1c23b438d6a295902828fcf.tar.gz
gnu: Add http-parser.
* gnu/packages/web.scm (http-parser): New variable.
Diffstat (limited to 'gnu/packages/web.scm')
-rw-r--r--gnu/packages/web.scm32
1 files changed, 32 insertions, 0 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index efaa1b5742..bcc20bfdde 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -4552,3 +4552,35 @@ into your tests.  It automatically starts up a HTTP server in a separate thread
 
 (define-public python2-pytest-httpbin
   (package-with-python2 python-pytest-httpbin))
+
+(define-public http-parser
+  (package
+    (name "http-parser")
+    (version "2.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/nodejs/http-parser/"
+                                  "archive/v" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1cw6nf8xy4jhib1w0jd2y0gpqjbdasg8b7pkl2k2vpp54k9rlh3h"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:make-flags
+       (list (string-append "PREFIX="
+                            (assoc-ref %outputs "out"))
+             "CC=gcc" "library")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://github.com/nodejs/http-parser")
+    (synopsis "HTTP request/response parser for C")
+    (description "This is a parser for HTTP messages written in C.  It parses
+both requests and responses.  The parser is designed to be used in
+high-performance HTTP applications.  It does not make any syscalls nor
+allocations, it does not buffer data, it can be interrupted at anytime.
+Depending on your architecture, it only requires about 40 bytes of data per
+message stream (in a web server that is per connection).")
+    (license l:expat)))