gnu: ghc-http: Update to 4000.3.3.
[jackhill/guix/guix.git] / gnu / packages / haskell-web.scm
CommitLineData
44b7374a
RW
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
9656e6e8 3;;; Copyright © 2015, 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
44b7374a
RW
4;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
5;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
6;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
1a1cf03f 7;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
44b7374a
RW
8;;;
9;;; This file is part of GNU Guix.
10;;;
11;;; GNU Guix is free software; you can redistribute it and/or modify it
12;;; under the terms of the GNU General Public License as published by
13;;; the Free Software Foundation; either version 3 of the License, or (at
14;;; your option) any later version.
15;;;
16;;; GNU Guix is distributed in the hope that it will be useful, but
17;;; WITHOUT ANY WARRANTY; without even the implied warranty of
18;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;;; GNU General Public License for more details.
20;;;
21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23
24(define-module (gnu packages haskell-web)
25 #:use-module (gnu packages)
26 #:use-module (gnu packages haskell)
27 #:use-module (gnu packages haskell-check)
f24eba89 28 #:use-module (gnu packages haskell-crypto)
587d1752 29 #:use-module (gnu packages tls)
44b7374a
RW
30 #:use-module (guix build-system haskell)
31 #:use-module (guix download)
32 #:use-module ((guix licenses) #:prefix license:)
33 #:use-module (guix packages)
34 #:use-module (guix utils))
35
36(define-public ghc-tagsoup
37 (package
38 (name "ghc-tagsoup")
39 (version "0.14")
40 (source
41 (origin
42 (method url-fetch)
43 (uri (string-append
44 "https://hackage.haskell.org/package/tagsoup/tagsoup-"
45 version
46 ".tar.gz"))
47 (sha256
48 (base32
49 "07pax7i0bl79dmqqz58zy09yrgpnyyr2ya0z183hv96kp65jv0lh"))))
50 (build-system haskell-build-system)
51 (inputs `(("ghc-text" ,ghc-text)))
52 (home-page
53 "http://community.haskell.org/~ndm/tagsoup/")
54 (synopsis
55 "Parsing and extracting information from (possibly malformed) HTML/XML
56documents")
57 (description
58 "TagSoup is a library for parsing HTML/XML. It supports the HTML 5
59specification, and can be used to parse either well-formed XML, or
60unstructured and malformed HTML from the web. The library also provides
61useful functions to extract information from an HTML document, making it ideal
62for screen-scraping.")
63 (license license:bsd-3)))
64
65(define-public ghc-cookie
66 (package
67 (name "ghc-cookie")
6d39aee5 68 (version "0.4.3")
44b7374a
RW
69 (source
70 (origin
71 (method url-fetch)
72 (uri (string-append
73 "https://hackage.haskell.org/package/cookie/cookie-"
74 version
75 ".tar.gz"))
76 (sha256
77 (base32
6d39aee5 78 "0qpdydhb9gw590ffabqg70x7xvjpg8l74idqnrfbhv5yrr7hryzv"))))
44b7374a
RW
79 (build-system haskell-build-system)
80 (inputs
81 `(("ghc-old-locale" ,ghc-old-locale)
82 ("ghc-blaze-builder" ,ghc-blaze-builder)
83 ("ghc-text" ,ghc-text)
84 ("ghc-data-default-class" ,ghc-data-default-class)
85 ("ghc-hunit" ,ghc-hunit)
86 ("ghc-quickcheck" ,ghc-quickcheck)
87 ("ghc-tasty" ,ghc-tasty)
88 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
89 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
90 (home-page "https://github.com/snoyberg/cookie")
91 (synopsis "HTTP cookie parsing and rendering")
92 (description "HTTP cookie parsing and rendering library for Haskell.")
93 (license license:bsd-3)))
94
95(define-public ghc-http-types
96 (package
97 (name "ghc-http-types")
a08801e2 98 (version "0.11")
44b7374a
RW
99 (source
100 (origin
101 (method url-fetch)
102 (uri (string-append
103 "https://hackage.haskell.org/package/http-types/http-types-"
104 version
105 ".tar.gz"))
106 (sha256
107 (base32
a08801e2 108 "08w30rf1i7kbh2j1iajqmj6yhhmglnb8kjggc8kdni3xahhrgcss"))))
44b7374a 109 (build-system haskell-build-system)
d4846779
TGR
110 (native-inputs
111 `(("ghc-doctest" ,ghc-doctest)
112 ("ghc-hspec" ,ghc-hspec)
113 ("ghc-quickcheck" ,ghc-quickcheck)
114 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
115 ("hspec-discover" ,hspec-discover)))
44b7374a
RW
116 (inputs
117 `(("ghc-case-insensitive" ,ghc-case-insensitive)
118 ("ghc-blaze-builder" ,ghc-blaze-builder)
119 ("ghc-text" ,ghc-text)))
120 (home-page "https://github.com/aristidb/http-types")
121 (synopsis "Generic HTTP types for Haskell")
122 (description "This package provides generic HTTP types for Haskell (for
123both client and server code).")
124 (license license:bsd-3)))
125
126(define-public ghc-http
127 (package
128 (name "ghc-http")
92299af0 129 (version "4000.3.3")
44b7374a
RW
130 (outputs '("out" "doc"))
131 (source
132 (origin
133 (method url-fetch)
134 (uri (string-append
135 "https://hackage.haskell.org/package/HTTP/HTTP-"
136 version
137 ".tar.gz"))
138 (sha256
139 (base32
92299af0 140 "1wlvvqcxsnd2is3khsla0vd8i9cy12v1pg6d6i13ihcd131a7bdv"))))
44b7374a
RW
141 (build-system haskell-build-system)
142 (native-inputs
143 `(("ghc-hunit" ,ghc-hunit)))
144 (inputs
145 `(("ghc-old-time" ,ghc-old-time)
146 ("ghc-parsec" ,ghc-parsec)
147 ("ghc-mtl" ,ghc-mtl)
148 ("ghc-network" ,ghc-network)
149 ("ghc-network-uri" ,ghc-network-uri)))
150 (arguments
151 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
152 (home-page "https://github.com/haskell/HTTP")
153 (synopsis "Library for client-side HTTP")
154 (description
155 "The HTTP package supports client-side web programming in Haskell. It
156lets you set up HTTP connections, transmitting requests and processing the
157responses coming back.")
158 (license license:bsd-3)))
159
160(define-public ghc-http-client
161 (package
162 (name "ghc-http-client")
7dc82755 163 (version "0.5.7.1")
44b7374a
RW
164 (source (origin
165 (method url-fetch)
166 (uri (string-append "https://hackage.haskell.org/package/"
167 "http-client/http-client-"
168 version ".tar.gz"))
169 (sha256
170 (base32
7dc82755 171 "19cvnnfcjj2m3pgs6ivyjs21rw9wx5ynarh6hvb27a76cscai2fy"))))
44b7374a
RW
172 (build-system haskell-build-system)
173 ;; Tests require access to the web.
174 (arguments `(#:tests? #f))
175 (inputs
176 `(("ghc-text" ,ghc-text)
177 ("ghc-http-types" ,ghc-http-types)
178 ("ghc-blaze-builder" ,ghc-blaze-builder)
179 ("ghc-data-default-class" ,ghc-data-default-class)
180 ("ghc-network" ,ghc-network)
181 ("ghc-streaming-commons" ,ghc-streaming-commons)
182 ("ghc-case-insensitive" ,ghc-case-insensitive)
183 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
184 ("ghc-cookie" ,ghc-cookie)
185 ("ghc-exceptions" ,ghc-exceptions)
186 ("ghc-random" ,ghc-random)
187 ("ghc-mime-types" ,ghc-mime-types)
188 ("ghc-network-uri" ,ghc-network-uri)
189 ("ghc-monad-control" ,ghc-monad-control)
190 ("ghc-zlib" ,ghc-zlib)
191 ("ghc-async" ,ghc-async)))
192 (native-inputs
193 `(("ghc-hspec" ,ghc-hspec)))
194 (home-page "https://github.com/snoyberg/http-client")
195 (synopsis "HTTP client engine")
196 (description
197 "This package provides an HTTP client engine, intended as a base layer
198for more user-friendly packages.")
199 (license license:expat)))
200
201(define-public ghc-http-client-tls
202 (package
203 (name "ghc-http-client-tls")
5a568e4a 204 (version "0.3.5.1")
44b7374a
RW
205 (source (origin
206 (method url-fetch)
207 (uri (string-append "https://hackage.haskell.org/package/"
208 "http-client-tls/http-client-tls-"
209 version ".tar.gz"))
210 (sha256
211 (base32
5a568e4a 212 "0n4mi8z77qaggfyq17z79cl304nf1f4h6gag60v4wjwghvmj7yn1"))))
44b7374a
RW
213 (build-system haskell-build-system)
214 ;; Tests require Internet access
215 (arguments `(#:tests? #f))
216 (inputs
217 `(("ghc-data-default-class" ,ghc-data-default-class)
218 ("ghc-http-client" ,ghc-http-client)
219 ("ghc-connection" ,ghc-connection)
220 ("ghc-network" ,ghc-network)
221 ("ghc-tls" ,ghc-tls)
222 ("ghc-http-types" ,ghc-http-types)))
223 (native-inputs
224 `(("ghc-hspec" ,ghc-hspec)))
225 (home-page "https://github.com/snoyberg/http-client")
226 (synopsis "Backend for http-client using the TLS library")
227 (description
228 "This package provides a backend for the http-client package using the
229connection and TLS libraries. It is intended for use by higher-level
230libraries, such as http-conduit.")
231 (license license:expat)))
232
233(define-public ghc-http-date
234 (package
235 (name "ghc-http-date")
236 (version "0.0.6.1")
237 (source
238 (origin
239 (method url-fetch)
240 (uri (string-append "https://hackage.haskell.org/package/"
241 "http-date-" version "/"
242 "http-date-" version ".tar.gz"))
243 (sha256
244 (base32
245 "0dknh28kyarnzqrsc80ssalxjrq0qbv7ir49247p2grb7rh0dqgj"))))
246 (build-system haskell-build-system)
247 (inputs
248 `(("ghc-attoparsec" ,ghc-attoparsec)))
249 (native-inputs
250 `(("ghc-doctest" ,ghc-doctest)
251 ("ghc-hspec" ,ghc-hspec)
252 ("hspec-discover" ,hspec-discover)
253 ("ghc-old-locale" ,ghc-old-locale)))
254 (home-page "https://github.com/kazu-yamamoto/http-date")
255 (synopsis "HTTP Date parser/formatter")
256 (description "Library for Parsing and formatting HTTP
257Date in Haskell.")
258 (license license:bsd-3)))
259
260(define-public ghc-http2
261 (package
262 (name "ghc-http2")
263 (version "1.6.3")
264 (source
265 (origin
266 (method url-fetch)
267 (uri (string-append "https://hackage.haskell.org/package/"
268 "http2-" version "/"
269 "http2-" version ".tar.gz"))
270 (sha256
271 (base32
272 "0hww0rfsv6lqx62qzycbcqy5q6rh9k09qkyjkdm5m1sp1z50wqk1"))))
273 (build-system haskell-build-system)
274 (inputs
275 `(("ghc-bytestring-builder" ,ghc-bytestring-builder)
276 ("ghc-case-insensitive" ,ghc-case-insensitive)
277 ("ghc-aeson" ,ghc-aeson)
278 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
279 ("ghc-hex" ,ghc-hex)
280 ("ghc-unordered-containers" ,ghc-unordered-containers)
281 ("ghc-vector" ,ghc-vector)
282 ("ghc-word8" ,ghc-word8)
283 ("ghc-psqueues" ,ghc-psqueues)
284 ("ghc-stm" ,ghc-stm)))
285 (native-inputs
286 `(("ghc-glob" ,ghc-glob)
287 ("ghc-hspec" ,ghc-hspec)
288 ("ghc-doctest" ,ghc-doctest)
289 ("hspec-discover" ,hspec-discover)))
290 (home-page "https://github.com/kazu-yamamoto/http2")
291 (synopsis "HTTP/2 library including frames, priority queues and HPACK")
292 (description "This package provides a HTTP/2.0 library including frames
293and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.")
294 (license license:bsd-3)))
295
296(define-public ghc-http-conduit
297 (package
298 (name "ghc-http-conduit")
e82152c4 299 (version "2.2.4")
44b7374a
RW
300 (source
301 (origin
302 (method url-fetch)
303 (uri (string-append "https://hackage.haskell.org/package/"
304 "http-conduit-" version "/" "http-conduit-"
305 version ".tar.gz"))
306 (sha256 (base32
e82152c4 307 "1wcl3lpg4v1ylq9j77j9fmf6l9qbmp8dmj3a9829q19q6bbgza7l"))))
44b7374a
RW
308 (build-system haskell-build-system)
309 ;; FIXME: `httpLbs TLS` in test-suite `test` fails with
310 ;; ConnectionFailure getProtocolByName: does not exist (no such protocol
311 ;; name: tcp)
312 (arguments `(#:tests? #f))
313 (inputs
314 `(("ghc-aeson" ,ghc-aeson)
315 ("ghc-resourcet" ,ghc-resourcet)
316 ("ghc-conduit" ,ghc-conduit)
317 ("ghc-conduit-extra" ,ghc-conduit-extra)
318 ("ghc-http-types" ,ghc-http-types)
319 ("ghc-lifted-base" ,ghc-lifted-base)
320 ("ghc-http-client" ,ghc-http-client)
321 ("ghc-http-client-tls" ,ghc-http-client-tls)
322 ("ghc-monad-control" ,ghc-monad-control)
323 ("ghc-mtl" ,ghc-mtl)
324 ("ghc-exceptions" ,ghc-exceptions)))
325 (native-inputs
326 `(("ghc-hunit" ,ghc-hunit)
327 ("ghc-hspec" ,ghc-hspec)
328 ("ghc-data-default-class" ,ghc-data-default-class)
329 ("ghc-connection" ,ghc-connection)
330 ("ghc-warp-tls" ,ghc-warp-tls)
331 ("ghc-blaze-builder" ,ghc-blaze-builder)
332 ("ghc-text" ,ghc-text)
333 ("ghc-conduit" ,ghc-conduit)
334 ("ghc-utf8-string" ,ghc-utf8-string)
335 ("ghc-case-insensitive" ,ghc-case-insensitive)
336 ("ghc-lifted-base" ,ghc-lifted-base)
337 ("ghc-network" ,ghc-network)
338 ("ghc-wai" ,ghc-wai)
339 ("ghc-warp" ,ghc-warp)
340 ("ghc-wai-conduit" ,ghc-wai-conduit)
341 ("ghc-http-types" ,ghc-http-types)
342 ("ghc-http-client" ,ghc-http-client)
343 ("ghc-cookie" ,ghc-cookie)
344 ("ghc-conduit-extra" ,ghc-conduit-extra)
345 ("ghc-streaming-commons" ,ghc-streaming-commons)
346 ("ghc-aeson" ,ghc-aeson)
347 ("ghc-temporary" ,ghc-temporary)
348 ("ghc-resourcet" ,ghc-resourcet)))
349 (home-page "https://hackage.haskell.org/package/http-conduit")
350 (synopsis "HTTP/HTTPS client with conduit interface")
351 (description "This library uses attoparsec for parsing the actual
352contents of the HTTP connection. It also provides higher-level functions
353which allow you to avoid direct usage of conduits.")
354 (license license:bsd-3)))
355
356(define-public ghc-wai
357 (package
358 (name "ghc-wai")
359 (version "3.2.1.1")
360 (source
361 (origin
362 (method url-fetch)
363 (uri (string-append
364 "https://hackage.haskell.org/package/wai/wai-"
365 version
366 ".tar.gz"))
367 (sha256
368 (base32
369 "08afasnirja21vr0bmzcywz4w29x736dmdv7h8nnh1l8bn7sd02x"))))
370 (build-system haskell-build-system)
371 (inputs
372 `(("ghc-bytestring-builder" ,ghc-bytestring-builder)
373 ("ghc-unix-compat" ,ghc-unix-compat)
374 ("ghc-vault" ,ghc-vault)
375 ("ghc-blaze-builder" ,ghc-blaze-builder)
376 ("ghc-network" ,ghc-network)
377 ("ghc-text" ,ghc-text)
378 ("ghc-http-types" ,ghc-http-types)))
379 (native-inputs
380 `(("hspec-discover" ,hspec-discover)
381 ("ghc-quickcheck" ,ghc-quickcheck)
382 ("ghc-hunit" ,ghc-hunit)
383 ("ghc-hspec" ,ghc-hspec)))
384 (home-page "https://hackage.haskell.org/package/wai")
385 (synopsis "Web application interface for Haskell")
386 (description "This package provides a Web Application Interface (WAI)
387library for the Haskell language. It defines a common protocol for
388communication between web applications and web servers.")
389 (license license:bsd-3)))
390
391(define-public ghc-wai-logger
392 (package
393 (name "ghc-wai-logger")
394 (version "2.2.4.1")
395 (source
396 (origin
397 (method url-fetch)
398 (uri (string-append
399 "https://hackage.haskell.org/package/wai-logger/wai-logger-"
400 version
401 ".tar.gz"))
402 (sha256
403 (base32
404 "1s6svvy3ci4j1dj1jaw8hg628miwj8f5gpy9n8d8hpsaxav6nzgk"))))
405 (build-system haskell-build-system)
406 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported
407 ; by propagated-inputs.
408 (inputs
409 `(("ghc-auto-update" ,ghc-auto-update)
410 ("ghc-byteorder" ,ghc-byteorder)
411 ("ghc-easy-file" ,ghc-easy-file)
412 ("ghc-unix-time" ,ghc-unix-time)
413 ("ghc-blaze-builder" ,ghc-blaze-builder)
414 ("ghc-case-insensitive" ,ghc-case-insensitive)
415 ("ghc-fast-logger" ,ghc-fast-logger)
416 ("ghc-http-types" ,ghc-http-types)
417 ("ghc-network" ,ghc-network)
418 ("ghc-wai" ,ghc-wai)))
419 (home-page "https://hackage.haskell.org/package/wai-logger")
420 (synopsis "Logging system for WAI")
421 (description "This package provides the logging system for WAI.")
422 (license license:bsd-3)))
423
424(define-public ghc-wai-extra
425 (package
426 (name "ghc-wai-extra")
427 (version "3.0.13.1")
428 (source
429 (origin
430 (method url-fetch)
431 (uri (string-append
432 "https://hackage.haskell.org/package/wai-extra/wai-extra-"
433 version
434 ".tar.gz"))
435 (sha256
436 (base32
437 "0mh761a1bayr4ydwqmh3h8ndpi19zqw34mmy49lp2abr70r0nm1p"))))
438 (build-system haskell-build-system)
439 (inputs
440 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
441 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
442 ("ghc-cookie" ,ghc-cookie)
443 ("ghc-blaze-builder" ,ghc-blaze-builder)
444 ("ghc-network" ,ghc-network)
445 ("ghc-lifted-base" ,ghc-lifted-base)
446 ("ghc-streaming-commons" ,ghc-streaming-commons)
447 ("ghc-stringsearch" ,ghc-stringsearch)
448 ("ghc-resourcet" ,ghc-resourcet)
449 ("ghc-fast-logger" ,ghc-fast-logger)
450 ("ghc-wai-logger" ,ghc-wai-logger)
451 ("ghc-zlib" ,ghc-zlib)
452 ("ghc-word8" ,ghc-word8)
453 ("ghc-iproute" ,ghc-iproute)
454 ("ghc-void" ,ghc-void)
455 ("ghc-wai" ,ghc-wai)
456 ("ghc-http-types" ,ghc-http-types)
457 ("ghc-text" ,ghc-text)
458 ("ghc-case-insensitive" ,ghc-case-insensitive)
459 ("ghc-data-default-class" ,ghc-data-default-class)
460 ("ghc-unix-compat" ,ghc-unix-compat)
461 ("ghc-vault" ,ghc-vault)
462 ("ghc-aeson" ,ghc-aeson)))
463 (native-inputs
464 `(("hspec-discover" ,hspec-discover)
465 ("ghc-hspec" ,ghc-hspec)
466 ("ghc-hunit" ,ghc-hunit)))
467 (home-page "https://github.com/yesodweb/wai")
468 (synopsis "Some basic WAI handlers and middleware")
469 (description "This library provides basic WAI handlers and middleware
470functionality.")
471 (license license:expat)))
472
473(define-public ghc-wai-conduit
474 (package
475 (name "ghc-wai-conduit")
476 (version "3.0.0.3")
477 (source
478 (origin
479 (method url-fetch)
480 (uri (string-append "https://hackage.haskell.org/package/"
481 "wai-conduit-" version "/"
482 "wai-conduit-" version ".tar.gz"))
483 (sha256
484 (base32
485 "1zvsiwjq2mvkb9sjgp3ly9m968m7a2jjzr4id6jpi3mmqykj15z4"))))
486 (build-system haskell-build-system)
487 (inputs
488 `(("ghc-conduit" ,ghc-conduit)
489 ("ghc-http-types" ,ghc-http-types)
490 ("ghc-wai" ,ghc-wai)
491 ("ghc-blaze-builder" ,ghc-blaze-builder)))
492 (home-page "https://github.com/yesodweb/wai")
493 (synopsis "Conduit wrappers for Haskell's WAI")
494 (description "This package provides data streaming abstraction for
495Haskell's Web Application Interface (WAI).")
496 (license license:expat)))
497
498(define-public ghc-warp
499 (package
500 (name "ghc-warp")
501 (version "3.2.11.1")
502 (source
503 (origin
504 (method url-fetch)
505 (uri (string-append "https://hackage.haskell.org/package/"
506 "warp-" version "/" "warp-" version
507 ".tar.gz"))
508 (sha256
509 (base32
510 "1zp5cy0bbj508vdvms1n5z80z37m253kwsqc5a83cfc990n6fgw5"))))
511 (build-system haskell-build-system)
512 (arguments
513 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
514 (inputs
515 `(("ghc-async" ,ghc-async)
516 ("ghc-auto-update" ,ghc-auto-update)
517 ("ghc-blaze-builder" ,ghc-blaze-builder)
518 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
519 ("ghc-case-insensitive" ,ghc-case-insensitive)
520 ("ghc-hashable" ,ghc-hashable)
521 ("ghc-http-types" ,ghc-http-types)
522 ("ghc-iproute" ,ghc-iproute)
523 ("ghc-network" ,ghc-network)
524 ("ghc-stm" ,ghc-stm)
525 ("ghc-streaming-commons" ,ghc-streaming-commons)
526 ("ghc-text" ,ghc-text)
527 ("ghc-unix-compat" ,ghc-unix-compat)
528 ("ghc-vault" ,ghc-vault)
529 ("ghc-wai" ,ghc-wai)
530 ("ghc-word8" ,ghc-word8)
531 ("ghc-lifted-base" ,ghc-lifted-base)
532 ("ghc-http-date" ,ghc-http-date)
533 ("ghc-simple-sendfile" ,ghc-simple-sendfile)
534 ("ghc-http2" ,ghc-http2)))
535 (native-inputs
536 `(("ghc-silently" ,ghc-silently)
537 ("ghc-hspec" ,ghc-hspec)
538 ("ghc-auto-update" ,ghc-auto-update)
539 ("ghc-doctest" ,ghc-doctest)
540 ("ghc-quickcheck" ,ghc-quickcheck)
541 ("ghc-hunit" ,ghc-hunit)
542 ("ghc-http" ,ghc-http)
543 ("hspec-discover" ,hspec-discover)))
544 (home-page "http://github.com/yesodweb/wai")
545 (synopsis "HTTP server library for Haskell's WAI")
546 (description "Warp is a server library for HTTP/1.x and HTTP/2
547based WAI (Web Application Interface in Haskell).")
548 (license license:expat)))
549
550(define-public ghc-warp-tls
551 (package
552 (name "ghc-warp-tls")
553 (version "3.2.3")
554 (source
555 (origin
556 (method url-fetch)
557 (uri (string-append "https://hackage.haskell.org/package/"
558 "warp-tls-" version "/"
559 "warp-tls-" version ".tar.gz"))
560 (sha256
561 (base32
562 "14m2bzk5ivz9gdpxlcj6qnh46f2lycm1ybdjnfkj2876zrqwii7m"))))
563 (build-system haskell-build-system)
564 (inputs
565 `(("ghc-cryptonite" ,ghc-cryptonite)
566 ("ghc-data-default-class" ,ghc-data-default-class)
567 ("ghc-network" ,ghc-network)
568 ("ghc-streaming-commons" ,ghc-streaming-commons)
569 ("ghc-tls" ,ghc-tls)
570 ("ghc-wai" ,ghc-wai)
571 ("ghc-warp" ,ghc-warp)))
572 (home-page "http://github.com/yesodweb/wai")
573 (synopsis "SSL/TLS support for Warp")
574 (description "This package provides SSL/TLS support for Warp,
575a WAI handler, via the native Haskell TLS implementation.")
576 (license license:expat)))
577
578(define-public ghc-xss-sanitize
579 (package
580 (name "ghc-xss-sanitize")
581 (version "0.3.5.6")
582 (source
583 (origin
584 (method url-fetch)
585 (uri (string-append
586 "https://hackage.haskell.org/package/xss-sanitize/xss-sanitize-"
587 version
588 ".tar.gz"))
589 (sha256
590 (base32
591 "1j2qrn2dbfx01m7zyk9ilgnp9zjwq9mk62b0rdal4zkg4vh212h0"))))
592 (build-system haskell-build-system)
593 (inputs
594 `(("ghc-tagsoup" ,ghc-tagsoup)
595 ("ghc-utf8-string" ,ghc-utf8-string)
596 ("ghc-css-text" ,ghc-css-text)
597 ("ghc-network-uri" ,ghc-network-uri)))
598 (native-inputs
599 `(("ghc-text" ,ghc-text)
600 ("ghc-attoparsec" ,ghc-attoparsec)
601 ("ghc-hspec" ,ghc-hspec)
602 ("ghc-hunit" ,ghc-hunit)))
603 (home-page "https://github.com/yesodweb/haskell-xss-sanitize")
604 (synopsis "Sanitize untrusted HTML to prevent XSS attacks")
605 (description "This library provides @code{sanitizeXSS}. Run untrusted
606HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS
607attacks.")
608 (license license:bsd-3)))
609
610(define-public ghc-css-text
611 (package
612 (name "ghc-css-text")
9656e6e8 613 (version "0.1.3.0")
44b7374a
RW
614 (source
615 (origin
616 (method url-fetch)
617 (uri (string-append
618 "https://hackage.haskell.org/package/css-text/css-text-"
619 version
620 ".tar.gz"))
621 (sha256
622 (base32
9656e6e8 623 "0ynd9f4hn2sfwqzbsa0y7phmxq8za7jiblpjwx0ry8b372zhgxaz"))))
44b7374a
RW
624 (build-system haskell-build-system)
625 (inputs
626 `(("ghc-text" ,ghc-text)
627 ("ghc-attoparsec" ,ghc-attoparsec)
628 ("ghc-hspec" ,ghc-hspec)
629 ("ghc-quickcheck" ,ghc-quickcheck)))
630 (home-page "http://www.yesodweb.com/")
631 (synopsis "CSS parser and renderer")
632 (description "This package provides a CSS parser and renderer for
633Haskell.")
634 (license license:bsd-3)))
635
636(define-public ghc-mime-types
637 (package
638 (name "ghc-mime-types")
639 (version "0.1.0.6")
640 (source (origin
641 (method url-fetch)
642 (uri (string-append "https://hackage.haskell.org/package/"
643 "mime-types/mime-types-"
644 version ".tar.gz"))
645 (sha256
646 (base32
647 "090z3dp928243amnc6s8g10rk2h2bprk9y138q6wj3cpflzr72pw"))))
648 (build-system haskell-build-system)
649 (inputs
650 `(("ghc-text" ,ghc-text)))
651 (home-page "https://github.com/yesodweb/wai")
652 (synopsis "Basic MIME type handling types and functions")
653 (description
654 "This library provides basic MIME type handling types and functions.")
655 (license license:expat)))
656
657(define-public ghc-html
658 (package
659 (name "ghc-html")
660 (version "1.0.1.2")
661 (source
662 (origin
663 (method url-fetch)
664 (uri (string-append
665 "https://hackage.haskell.org/package/html/html-"
666 version
667 ".tar.gz"))
668 (sha256
669 (base32
670 "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c"))))
671 (build-system haskell-build-system)
672 (home-page
673 "https://hackage.haskell.org/package/html")
674 (synopsis "HTML combinator library")
675 (description
676 "This package contains a combinator library for constructing HTML
677documents.")
678 (license license:bsd-3)))
679
680(define-public ghc-xhtml
681 (package
682 (name "ghc-xhtml")
683 (version "3000.2.1")
684 (source
685 (origin
686 (method url-fetch)
687 (uri (string-append
688 "https://hackage.haskell.org/package/xhtml/xhtml-"
689 version
690 ".tar.gz"))
691 (sha256
692 (base32
693 "1n6wgzxbj8xf0wf1il827qidphnffb5vzhwzqlxhh70c2y10f0ik"))))
694 (build-system haskell-build-system)
695 (home-page "https://github.com/haskell/xhtml")
696 (synopsis "XHTML combinator library")
697 (description
698 "This package provides combinators for producing XHTML 1.0, including the
699Strict, Transitional and Frameset variants.")
700 (license license:bsd-3)))
701
702(define-public ghc-blaze-html
703 (package
704 (name "ghc-blaze-html")
705 (version "0.8.1.1")
706 (source
707 (origin
708 (method url-fetch)
709 (uri (string-append
710 "https://hackage.haskell.org/package/blaze-html/blaze-html-"
711 version
712 ".tar.gz"))
713 (sha256
714 (base32
715 "1dnw50kh0s405cg9i2y4a8awanhj3bqzk21jwgfza65kcjby7lpq"))))
716 (build-system haskell-build-system)
717 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
718 (inputs
719 `(("ghc-blaze-builder" ,ghc-blaze-builder)
720 ("ghc-text" ,ghc-text)
721 ("ghc-blaze-markup" ,ghc-blaze-markup)))
722 (home-page "http://jaspervdj.be/blaze")
723 (synopsis "Fast HTML combinator library")
724 (description "This library provides HTML combinators for Haskell.")
725 (license license:bsd-3)))
726
727(define-public ghc-aeson
728 (package
729 (name "ghc-aeson")
730 (version "0.10.0.0")
731 (source
732 (origin
733 (method url-fetch)
734 (uri (string-append
735 "https://hackage.haskell.org/package/aeson/aeson-"
736 version
737 ".tar.gz"))
738 (sha256
739 (base32
740 "19kp33rfivr4d3myyr8xn803wd7p8x5nc4wb3qvlgjwgyqjaxvrz"))))
741 (build-system haskell-build-system)
742 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
743 (inputs
744 `(("ghc-attoparsec" ,ghc-attoparsec)
745 ("ghc-dlist" ,ghc-dlist)
746 ("ghc-mtl" ,ghc-mtl)
747 ("ghc-scientific" ,ghc-scientific)
748 ("ghc-syb" ,ghc-syb)
749 ("ghc-unordered-containers" ,ghc-unordered-containers)
750 ("ghc-vector" ,ghc-vector)
751 ("ghc-hashable" ,ghc-hashable)
752 ("ghc-text" ,ghc-text)
753 ("ghc-hunit" ,ghc-hunit)
754 ("ghc-quickcheck" ,ghc-quickcheck)))
755 (home-page "https://github.com/bos/aeson")
756 (synopsis "Fast JSON parsing and encoding")
757 (description "This package provides a JSON parsing and encoding library
758for Haskell, optimized for ease of use and high performance. (A note on
759naming: in Greek mythology, Aeson was the father of Jason.)")
760 (license license:bsd-3)))
761
762(define-public ghc-aeson-pretty
763 (package
764 (name "ghc-aeson-pretty")
765 (version "0.7.2")
766 (source (origin
767 (method url-fetch)
768 (uri (string-append
769 "https://hackage.haskell.org/package/aeson-pretty/aeson-pretty-"
770 version ".tar.gz"))
771 (sha256
772 (base32
773 "03ap81853qi8yd9kdgczllrrni23a6glsfxrwj8zab6ipjrbh234"))))
774 (build-system haskell-build-system)
775 (inputs
776 `(("ghc-aeson" ,ghc-aeson)
777 ("ghc-vector" ,ghc-vector)
778 ("ghc-text" ,ghc-text)
779 ("ghc-unordered-containers"
780 ,ghc-unordered-containers)
781 ("ghc-attoparsec" ,ghc-attoparsec)
782 ("ghc-cmdargs" ,ghc-cmdargs)))
783 (home-page "https://github.com/informatikr/aeson-pretty")
784 (synopsis "JSON pretty-printing library and command-line tool")
785 (description
786 "This package provides a JSON pretty-printing library compatible with aeson
787as well as a command-line tool to improve readabilty of streams of JSON data.
788The library provides the function @code{encodePretty}. It is a drop-in
789replacement for aeson's @code{encode} function, producing JSON-ByteStrings for
790human readers. The command-line tool reads JSON from stdin and writes
791prettified JSON to stdout. It also offers a complementary \"compact\"-mode,
792essentially the opposite of pretty-printing.")
793 (license license:bsd-3)))
794
795(define-public ghc-aeson-qq
796 (package
797 (name "ghc-aeson-qq")
1a1cf03f 798 (version "0.8.2")
44b7374a
RW
799 (source (origin
800 (method url-fetch)
801 (uri (string-append "https://hackage.haskell.org/package/"
802 "aeson-qq/aeson-qq-" version ".tar.gz"))
803 (sha256
804 (base32
1a1cf03f 805 "0ln13jqyfh5726hdrk1rad9a6cgrrj201plmwcfcpvq18v4m5ckd"))))
44b7374a
RW
806 (build-system haskell-build-system)
807 (inputs
808 `(("ghc-base-compat" ,ghc-base-compat)
809 ("ghc-text" ,ghc-text)
810 ("ghc-attoparsec" ,ghc-attoparsec)
811 ("ghc-scientific" ,ghc-scientific)
812 ("ghc-vector" ,ghc-vector)
813 ("ghc-aeson" ,ghc-aeson)
814 ("ghc-parsec" ,ghc-parsec)
815 ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
816 (native-inputs
817 `(("ghc-hspec" ,ghc-hspec)
818 ("hspec-discover" ,hspec-discover)))
819 (home-page "https://github.com/zalora/aeson-qq")
820 (synopsis "JSON quasiquoter for Haskell")
821 (description
822 "aeson-qq provides a JSON quasiquoter for Haskell. This package exposes
823the function @code{aesonQQ} that compile-time converts a string representation
824of a JSON value into a @code{Data.Aeson.Value}.")
825 (license license:expat)))
826
827(define-public ghc-multipart
828 (package
829 (name "ghc-multipart")
830 (version "0.1.2")
831 (source
832 (origin
833 (method url-fetch)
834 (uri (string-append
835 "https://hackage.haskell.org/package/multipart/multipart-"
836 version
837 ".tar.gz"))
838 (sha256
839 (base32
840 "0g04jhyw1ib1s7c9bcldyyn4n90qd9x7dmvic4vgq57bgcqgnhz5"))))
841 (build-system haskell-build-system)
842 (inputs `(("ghc-parsec" ,ghc-parsec)))
843 (home-page
844 "http://www.github.com/silkapp/multipart")
845 (synopsis
846 "HTTP multipart library")
847 (description
848 "HTTP multipart split out of the cgi package, for Haskell.")
849 (license license:bsd-3)))