haskell-web.scm 75 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
  3. ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
  4. ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
  5. ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
  6. ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
  7. ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
  8. ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
  9. ;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
  10. ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@gmail.com>
  11. ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
  12. ;;; Copyright © 2020, 2022 Kyle Meyer <kyle@kyleam.com>
  13. ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
  14. ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
  15. ;;;
  16. ;;; This file is part of GNU Guix.
  17. ;;;
  18. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  19. ;;; under the terms of the GNU General Public License as published by
  20. ;;; the Free Software Foundation; either version 3 of the License, or (at
  21. ;;; your option) any later version.
  22. ;;;
  23. ;;; GNU Guix is distributed in the hope that it will be useful, but
  24. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  25. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  26. ;;; GNU General Public License for more details.
  27. ;;;
  28. ;;; You should have received a copy of the GNU General Public License
  29. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  30. (define-module (gnu packages haskell-web)
  31. #:use-module (gnu packages)
  32. #:use-module (gnu packages curl)
  33. #:use-module (gnu packages haskell)
  34. #:use-module (gnu packages haskell-check)
  35. #:use-module (gnu packages haskell-crypto)
  36. #:use-module (gnu packages haskell-xyz)
  37. #:use-module (guix build-system haskell)
  38. #:use-module (guix download)
  39. #:use-module ((guix licenses) #:prefix license:)
  40. #:use-module (guix packages)
  41. #:use-module (guix utils))
  42. (define-public ghc-tagsoup
  43. (package
  44. (name "ghc-tagsoup")
  45. (version "0.14.8")
  46. (source
  47. (origin
  48. (method url-fetch)
  49. (uri (string-append "https://hackage.haskell.org/package/tagsoup/"
  50. "tagsoup-" version ".tar.gz"))
  51. (sha256
  52. (base32
  53. "1m9sx6gr9y9yxvkmcap8xsks8cnhznvma1mrfl39zljkv005azms"))))
  54. (build-system haskell-build-system)
  55. (native-inputs
  56. (list ghc-quickcheck))
  57. (home-page "https://github.com/ndmitchell/tagsoup")
  58. (synopsis
  59. "Parsing and extracting information from (possibly malformed) HTML/XML
  60. documents")
  61. (description
  62. "TagSoup is a library for parsing HTML/XML. It supports the HTML 5
  63. specification, and can be used to parse either well-formed XML, or
  64. unstructured and malformed HTML from the web. The library also provides
  65. useful functions to extract information from an HTML document, making it ideal
  66. for screen-scraping.")
  67. (license license:bsd-3)))
  68. (define-public ghc-cookie
  69. (package
  70. (name "ghc-cookie")
  71. (version "0.4.5")
  72. (source
  73. (origin
  74. (method url-fetch)
  75. (uri (string-append
  76. "https://hackage.haskell.org/package/cookie/cookie-"
  77. version
  78. ".tar.gz"))
  79. (sha256
  80. (base32
  81. "10rmdasb7mypbwxdj2mhr810vqhkakpik7hyd8fvj60hng8r8zvh"))))
  82. (build-system haskell-build-system)
  83. (inputs
  84. (list ghc-old-locale
  85. ghc-blaze-builder
  86. ghc-data-default-class
  87. ghc-hunit
  88. ghc-quickcheck
  89. ghc-tasty
  90. ghc-tasty-hunit
  91. ghc-tasty-quickcheck))
  92. (home-page "https://github.com/snoyberg/cookie")
  93. (synopsis "HTTP cookie parsing and rendering")
  94. (description "HTTP cookie parsing and rendering library for Haskell.")
  95. (license license:bsd-3)))
  96. (define-public ghc-curl
  97. (package
  98. (name "ghc-curl")
  99. (version "1.3.8")
  100. (source (origin
  101. (method url-fetch)
  102. (uri (string-append "mirror://hackage/package/curl/curl-"
  103. version ".tar.gz"))
  104. (sha256
  105. (base32
  106. "0vj4hpaa30jz7c702xpsfvqaqdxz28zslsqnsfx6bf6dpwvck1wh"))))
  107. (build-system haskell-build-system)
  108. (inputs
  109. (list curl))
  110. (home-page "https://hackage.haskell.org/package/curl")
  111. (synopsis "Haskell bindings for libcurl")
  112. (description
  113. "@code{libcurl} is a versatile client-side URL transfer library.
  114. This package provides a Haskell binding to libcurl.")
  115. (license license:bsd-3)))
  116. (define-public ghc-httpd-shed
  117. (package
  118. (name "ghc-httpd-shed")
  119. (version "0.4.1.1")
  120. (source
  121. (origin
  122. (method url-fetch)
  123. (uri (string-append "https://hackage.haskell.org/package/httpd-shed/"
  124. "httpd-shed-" version ".tar.gz"))
  125. (sha256
  126. (base32
  127. "19dgdimpzr7pxk7pqvyin6j87gmvnf0rm35gzhmna8qr835wy3sr"))))
  128. (build-system haskell-build-system)
  129. (inputs
  130. (list ghc-network-bsd ghc-network-uri ghc-network))
  131. (home-page "https://hackage.haskell.org/package/httpd-shed")
  132. (synopsis "Simple web-server with an interact style API")
  133. (description
  134. "This web server promotes a function from @code{Request} to @code{IO
  135. Response} into a local web server. The user can decide how to interpret the
  136. requests, and the library is intended for implementing Ajax APIs.")
  137. (license license:bsd-3)))
  138. (define-public ghc-http-types
  139. (package
  140. (name "ghc-http-types")
  141. (version "0.12.3")
  142. (source
  143. (origin
  144. (method url-fetch)
  145. (uri (string-append "https://hackage.haskell.org/package/http-types/"
  146. "http-types-" version ".tar.gz"))
  147. (sha256
  148. (base32
  149. "05j00b9nqmwh9zaq9y9x50k81v2pd3j7a71kd91zlnbl8xk4m2jf"))))
  150. (build-system haskell-build-system)
  151. (native-inputs
  152. (list ghc-doctest ghc-hspec ghc-quickcheck ghc-quickcheck-instances
  153. hspec-discover))
  154. (inputs
  155. (list ghc-case-insensitive))
  156. (home-page "https://github.com/aristidb/http-types")
  157. (synopsis "Generic HTTP types for Haskell")
  158. (description "This package provides generic HTTP types for Haskell (for
  159. both client and server code).")
  160. (license license:bsd-3)))
  161. (define-public ghc-http
  162. (package
  163. (name "ghc-http")
  164. (version "4000.3.16")
  165. (outputs '("out" "static" "doc"))
  166. (source
  167. (origin
  168. (method url-fetch)
  169. (uri (string-append "https://hackage.haskell.org/package/HTTP/"
  170. "HTTP-" version ".tar.gz"))
  171. (sha256
  172. (base32
  173. "0bgyj3ahqlyg0jw6qsm2sncp8mklc4h0dj91s043vb3ig01iq2fn"))))
  174. (build-system haskell-build-system)
  175. (native-inputs
  176. (list ghc-httpd-shed ghc-hunit ghc-test-framework
  177. ghc-test-framework-hunit))
  178. (inputs
  179. (list ghc-case-insensitive
  180. ghc-conduit
  181. ghc-conduit-extra
  182. ghc-http-types
  183. ghc-old-time
  184. ghc-puremd5
  185. ghc-network
  186. ghc-network-uri
  187. ghc-split))
  188. (arguments
  189. `(#:tests? #f ; FIXME: currently missing libraries used for tests.
  190. #:phases
  191. (modify-phases %standard-phases
  192. (add-after 'unpack 'create-simple-paths-module
  193. (lambda _
  194. (call-with-output-file "Paths_HTTP.hs"
  195. (lambda (port)
  196. (format port "\
  197. {-# LANGUAGE CPP #-}
  198. {-# LANGUAGE NoRebindableSyntax #-}
  199. {-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
  200. module Paths_HTTP (version) where
  201. import Data.Version (Version(..))
  202. version :: Version
  203. version = Version [~a] []
  204. " (string-map (lambda (chr) (if (eq? chr #\.) #\, chr)) ,version))))
  205. #t)))))
  206. (home-page "https://github.com/haskell/HTTP")
  207. (synopsis "Library for client-side HTTP")
  208. (description
  209. "The HTTP package supports client-side web programming in Haskell. It
  210. lets you set up HTTP connections, transmitting requests and processing the
  211. responses coming back.")
  212. (license license:bsd-3)))
  213. (define-public ghc-http-client
  214. (package
  215. (name "ghc-http-client")
  216. (version "0.7.11")
  217. (source (origin
  218. (method url-fetch)
  219. (uri (string-append "https://hackage.haskell.org/package/"
  220. "http-client/http-client-"
  221. version ".tar.gz"))
  222. (sha256
  223. (base32
  224. "12j7vkpkm2djws6ny7vm2324c7916d0iaf1mbvf4mfjxzy2w7imv"))))
  225. (build-system haskell-build-system)
  226. ;; Tests require access to the web.
  227. (arguments `(#:tests? #f))
  228. (inputs
  229. (list ghc-async
  230. ghc-base64-bytestring
  231. ghc-blaze-builder
  232. ghc-case-insensitive
  233. ghc-cookie
  234. ghc-data-default-class
  235. ghc-exceptions
  236. ghc-http-types
  237. ghc-iproute
  238. ghc-memory
  239. ghc-mime-types
  240. ghc-monad-control
  241. ghc-network
  242. ghc-network-uri
  243. ghc-random
  244. ghc-streaming-commons
  245. ghc-zlib))
  246. (native-inputs
  247. (list ghc-hspec))
  248. (home-page "https://github.com/snoyberg/http-client")
  249. (synopsis "HTTP client engine")
  250. (description
  251. "This package provides an HTTP client engine, intended as a base layer
  252. for more user-friendly packages.")
  253. (license license:expat)))
  254. (define-public ghc-http-client-tls
  255. (package
  256. (name "ghc-http-client-tls")
  257. (version "0.3.6.1")
  258. (source (origin
  259. (method url-fetch)
  260. (uri (string-append "https://hackage.haskell.org/package/"
  261. "http-client-tls/http-client-tls-"
  262. version ".tar.gz"))
  263. (sha256
  264. (base32
  265. "03f8p9gxdzl6slyw1r6vpv2dqhsyjvbaawbjv75kaq0vlj3gz7xi"))))
  266. (build-system haskell-build-system)
  267. ;; Tests require Internet access
  268. (arguments `(#:tests? #f))
  269. (inputs
  270. (list ghc-data-default-class
  271. ghc-http-client
  272. ghc-connection
  273. ghc-network
  274. ghc-tls
  275. ghc-http-types))
  276. (native-inputs
  277. (list ghc-hspec))
  278. (home-page "https://github.com/snoyberg/http-client")
  279. (synopsis "Backend for http-client using the TLS library")
  280. (description
  281. "This package provides a backend for the http-client package using the
  282. connection and TLS libraries. It is intended for use by higher-level
  283. libraries, such as http-conduit.")
  284. (license license:expat)))
  285. (define-public ghc-http-client-restricted
  286. (package
  287. (name "ghc-http-client-restricted")
  288. (version "0.0.5")
  289. (source
  290. (origin
  291. (method url-fetch)
  292. (uri (hackage-uri "http-client-restricted" version))
  293. (sha256
  294. (base32 "1vfm9qc3zr0rmq2ddgyg13i67020cdk8xqhyzfc2zcn1km2p6r85"))))
  295. (build-system haskell-build-system)
  296. (inputs
  297. (list ghc-http-client
  298. ghc-http-client-tls
  299. ghc-connection
  300. ghc-data-default
  301. ghc-network
  302. ghc-network-bsd
  303. ghc-utf8-string))
  304. (home-page "http://hackage.haskell.org/package/http-client-restricted")
  305. (synopsis "Restrict the servers used by http-client")
  306. (description
  307. "This library makes it possible to restrict the HTTP servers that can be
  308. used by the @code{http-client} and @code{http-client-tls} libraries. This is
  309. useful when a security policy needs to, e.g., prevent connections to HTTP
  310. servers on localhost or only allow connections to a specific server.")
  311. (license license:expat)))
  312. (define-public ghc-http-date
  313. (package
  314. (name "ghc-http-date")
  315. (version "0.0.11")
  316. (source
  317. (origin
  318. (method url-fetch)
  319. (uri (string-append "https://hackage.haskell.org/package/"
  320. "http-date-" version "/"
  321. "http-date-" version ".tar.gz"))
  322. (sha256
  323. (base32
  324. "1lzlrj2flcnz3k5kfhf11nk5n8m6kcya0lkwrsnzxgfr3an27y9j"))))
  325. (build-system haskell-build-system)
  326. (inputs
  327. (list ghc-attoparsec))
  328. (native-inputs
  329. (list ghc-doctest ghc-hspec hspec-discover ghc-old-locale))
  330. (home-page "https://github.com/kazu-yamamoto/http-date")
  331. (synopsis "HTTP Date parser/formatter")
  332. (description "Library for Parsing and formatting HTTP
  333. Date in Haskell.")
  334. (license license:bsd-3)))
  335. (define-public ghc-http2
  336. (package
  337. (name "ghc-http2")
  338. (version "3.0.2")
  339. (source
  340. (origin
  341. (method url-fetch)
  342. (uri (string-append "https://hackage.haskell.org/package/"
  343. "http2-" version "/"
  344. "http2-" version ".tar.gz"))
  345. (sha256
  346. (base32
  347. "13c2z35gdimncgpyg5dn5cpjvd83rbrigc8b40crg36678m0k0d1"))))
  348. (build-system haskell-build-system)
  349. (inputs
  350. (list ghc-aeson
  351. ghc-aeson-pretty
  352. ghc-base16-bytestring
  353. ghc-case-insensitive
  354. ghc-cryptonite
  355. ghc-http-types
  356. ghc-network-byte-order
  357. ghc-network
  358. ghc-network-run
  359. ghc-psqueues
  360. ghc-time-manager
  361. ghc-unix-time
  362. ghc-unordered-containers
  363. ghc-vector
  364. ghc-word8))
  365. (native-inputs
  366. (list ghc-async
  367. ghc-doctest
  368. ghc-glob
  369. ghc-hspec
  370. hspec-discover
  371. ghc-typed-process))
  372. (home-page "https://github.com/kazu-yamamoto/http2")
  373. (synopsis "HTTP/2 library including frames, priority queues and HPACK")
  374. (description "This package provides a HTTP/2.0 library including frames
  375. and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.")
  376. (license license:bsd-3)))
  377. (define-public ghc-http-conduit
  378. (package
  379. (name "ghc-http-conduit")
  380. (version "2.3.8")
  381. (source
  382. (origin
  383. (method url-fetch)
  384. (uri (string-append "https://hackage.haskell.org/package/"
  385. "http-conduit-" version "/" "http-conduit-"
  386. version ".tar.gz"))
  387. (sha256
  388. (base32
  389. "1bj24phbcb7s3k6v48l5gk82m3m23j8zy9l7c5ccxp3ghn9z5gng"))))
  390. (build-system haskell-build-system)
  391. ;; FIXME: `httpLbs TLS` in test-suite `test` fails with
  392. ;; ConnectionFailure getProtocolByName: does not exist (no such protocol
  393. ;; name: tcp)
  394. (arguments `(#:tests? #f))
  395. (inputs
  396. (list ghc-aeson
  397. ghc-resourcet
  398. ghc-conduit
  399. ghc-conduit-extra
  400. ghc-http-types
  401. ghc-lifted-base
  402. ghc-http-client
  403. ghc-http-client-tls
  404. ghc-monad-control
  405. ghc-exceptions
  406. ghc-unliftio))
  407. (native-inputs
  408. (list ghc-hunit
  409. ghc-hspec
  410. ghc-data-default-class
  411. ghc-connection
  412. ghc-warp-tls
  413. ghc-blaze-builder
  414. ghc-conduit
  415. ghc-utf8-string
  416. ghc-case-insensitive
  417. ghc-lifted-base
  418. ghc-network
  419. ghc-wai
  420. ghc-warp
  421. ghc-wai-conduit
  422. ghc-http-types
  423. ghc-cookie
  424. ghc-conduit-extra
  425. ghc-streaming-commons
  426. ghc-aeson
  427. ghc-temporary
  428. ghc-resourcet))
  429. (home-page "https://hackage.haskell.org/package/http-conduit")
  430. (synopsis "HTTP/HTTPS client with conduit interface")
  431. (description "This library uses attoparsec for parsing the actual
  432. contents of the HTTP connection. It also provides higher-level functions
  433. which allow you to avoid direct usage of conduits.")
  434. (license license:bsd-3)))
  435. (define-public ghc-http-reverse-proxy
  436. (package
  437. (name "ghc-http-reverse-proxy")
  438. (version "0.6.0")
  439. (source
  440. (origin
  441. (method url-fetch)
  442. (uri (string-append
  443. "https://hackage.haskell.org/package/http-reverse-proxy/"
  444. "http-reverse-proxy-" version ".tar.gz"))
  445. (sha256
  446. (base32
  447. "1a6i5njf85b2lhg8m83njagcf09wih5q2irnyb2890s724qr277v"))))
  448. (build-system haskell-build-system)
  449. (inputs
  450. (list ghc-case-insensitive
  451. ghc-http-types
  452. ghc-word8
  453. ghc-blaze-builder
  454. ghc-http-client
  455. ghc-wai
  456. ghc-network
  457. ghc-conduit
  458. ghc-conduit-extra
  459. ghc-wai-logger
  460. ghc-resourcet
  461. ghc-unliftio
  462. ghc-streaming-commons))
  463. (native-inputs
  464. (list ghc-hspec ghc-warp ghc-http-conduit))
  465. (home-page
  466. "https://github.com/fpco/http-reverse-proxy")
  467. (synopsis
  468. "Reverse proxy HTTP requests, either over raw sockets or with WAI")
  469. (description
  470. "Provides a simple means of reverse-proxying HTTP requests. The raw
  471. approach uses the same technique as leveraged by keter, whereas the WAI
  472. approach performs full request/response parsing via WAI and http-conduit.")
  473. (license license:bsd-3)))
  474. (define-public ghc-wai
  475. (package
  476. (name "ghc-wai")
  477. (version "3.2.3")
  478. (source
  479. (origin
  480. (method url-fetch)
  481. (uri (string-append
  482. "https://hackage.haskell.org/package/wai/wai-"
  483. version
  484. ".tar.gz"))
  485. (sha256
  486. (base32
  487. "1y19h9v0cq1fl17ywcyyvd6419fhgyw2s0yk0ki8z60021adcx2m"))))
  488. (build-system haskell-build-system)
  489. (inputs
  490. (list ghc-bytestring-builder
  491. ghc-unix-compat
  492. ghc-vault
  493. ghc-blaze-builder
  494. ghc-network
  495. ghc-http-types))
  496. (native-inputs
  497. (list hspec-discover ghc-quickcheck ghc-hunit ghc-hspec))
  498. (home-page "https://hackage.haskell.org/package/wai")
  499. (synopsis "Web application interface for Haskell")
  500. (description "This package provides a Web Application Interface (WAI)
  501. library for the Haskell language. It defines a common protocol for
  502. communication between web applications and web servers.")
  503. (license license:bsd-3)))
  504. (define-public ghc-wai-logger
  505. (package
  506. (name "ghc-wai-logger")
  507. (version "2.3.6")
  508. (source
  509. (origin
  510. (method url-fetch)
  511. (uri (string-append
  512. "https://hackage.haskell.org/package/wai-logger/wai-logger-"
  513. version
  514. ".tar.gz"))
  515. (sha256
  516. (base32
  517. "0hbm7if28p6qa36cgpyq6i569275si53z9gsl2g1z8x09z3xiyz2"))))
  518. (build-system haskell-build-system)
  519. (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported
  520. ; by propagated-inputs.
  521. (inputs
  522. (list ghc-auto-update
  523. ghc-byteorder
  524. ghc-easy-file
  525. ghc-unix-time
  526. ghc-blaze-builder
  527. ghc-case-insensitive
  528. ghc-fast-logger
  529. ghc-http-types
  530. ghc-network
  531. ghc-wai))
  532. (home-page "https://hackage.haskell.org/package/wai-logger")
  533. (synopsis "Logging system for WAI")
  534. (description "This package provides the logging system for WAI.")
  535. (license license:bsd-3)))
  536. (define-public ghc-wai-extra
  537. (package
  538. (name "ghc-wai-extra")
  539. (version "3.1.7")
  540. (source
  541. (origin
  542. (method url-fetch)
  543. (uri (string-append
  544. "https://hackage.haskell.org/package/wai-extra/wai-extra-"
  545. version
  546. ".tar.gz"))
  547. (sha256
  548. (base32
  549. "1avf7bjcsbs8l6klp5kkd0cd2dc5n0j0a2yf8813pnwfn5b7qyd4"))))
  550. (build-system haskell-build-system)
  551. (inputs
  552. (list ghc-ansi-terminal
  553. ghc-base64-bytestring
  554. ghc-call-stack
  555. ghc-cookie
  556. ghc-network
  557. ghc-streaming-commons
  558. ghc-resourcet
  559. ghc-fast-logger
  560. ghc-wai-logger
  561. ghc-word8
  562. ghc-iproute
  563. ghc-wai
  564. ghc-http-types
  565. ghc-http2
  566. ghc-case-insensitive
  567. ghc-data-default-class
  568. ghc-vault
  569. ghc-aeson))
  570. (native-inputs
  571. (list hspec-discover ghc-hspec ghc-hunit ghc-zlib))
  572. (home-page "https://github.com/yesodweb/wai")
  573. (synopsis "Some basic WAI handlers and middleware")
  574. (description "This library provides basic WAI handlers and middleware
  575. functionality.")
  576. (license license:expat)))
  577. (define-public ghc-wai-conduit
  578. (package
  579. (name "ghc-wai-conduit")
  580. (version "3.0.0.4")
  581. (source
  582. (origin
  583. (method url-fetch)
  584. (uri (string-append "https://hackage.haskell.org/package/"
  585. "wai-conduit-" version "/"
  586. "wai-conduit-" version ".tar.gz"))
  587. (sha256
  588. (base32
  589. "07yn41rn2skd5p3wqqa09wa761vj7ibl8l19gh4bi4i8slxhk417"))))
  590. (build-system haskell-build-system)
  591. (inputs
  592. (list ghc-conduit ghc-http-types ghc-wai ghc-blaze-builder))
  593. (home-page "https://github.com/yesodweb/wai")
  594. (synopsis "Conduit wrappers for Haskell's WAI")
  595. (description "This package provides data streaming abstraction for
  596. Haskell's Web Application Interface (WAI).")
  597. (license license:expat)))
  598. (define-public ghc-bsb-http-chunked
  599. (package
  600. (name "ghc-bsb-http-chunked")
  601. (version "0.0.0.4")
  602. (source
  603. (origin
  604. (method url-fetch)
  605. (uri (string-append
  606. "https://hackage.haskell.org/package/"
  607. "bsb-http-chunked/bsb-http-chunked-"
  608. version ".tar.gz"))
  609. (sha256
  610. (base32
  611. "0z0f18yc6zlwh29c6175ivfcin325lvi4irpvv0n3cmq7vi0k0ql"))))
  612. (build-system haskell-build-system)
  613. (arguments
  614. `(;; XXX: As of 0.0.4, one property test ("Identical output as Blaze")
  615. ;; fails on i686-linux.
  616. #:tests? ,(and (not (%current-target-system))
  617. (not (string-prefix? "i686" (or (%current-target-system)
  618. (%current-system)))))
  619. #:cabal-revision
  620. ("3" "15hg352id2f4x0dnvv47bdiz6gv5hp5a2mki9yzmhc7ajpk31mdd")))
  621. (native-inputs
  622. (list ghc-attoparsec
  623. ghc-blaze-builder
  624. ghc-hedgehog
  625. ghc-tasty
  626. ghc-tasty-hedgehog
  627. ghc-tasty-hunit
  628. ghc-doctest))
  629. (home-page "https://github.com/sjakobi/bsb-http-chunked")
  630. (synopsis "Chunked HTTP transfer encoding for bytestring builders")
  631. (description "This Haskell library contains functions for encoding
  632. bytestring builders for chunked Hypertext Transfer Protocol (HTTP) 1.1
  633. transfers.")
  634. (license license:bsd-3)))
  635. (define-public ghc-warp
  636. (package
  637. (name "ghc-warp")
  638. (version "3.3.17")
  639. (source
  640. (origin
  641. (method url-fetch)
  642. (uri (string-append "https://hackage.haskell.org/package/"
  643. "warp-" version "/" "warp-" version
  644. ".tar.gz"))
  645. (sha256
  646. (base32 "0v54ca3wpa79gdyiikwhbv9h8b5vr3d60piq3ndb2v7s7fi1qpm0"))))
  647. (build-system haskell-build-system)
  648. (inputs
  649. (list ghc-async
  650. ghc-auto-update
  651. ghc-bsb-http-chunked
  652. ghc-case-insensitive
  653. ghc-hashable
  654. ghc-http-types
  655. ghc-iproute
  656. ghc-network
  657. ghc-streaming-commons
  658. ghc-time-manager
  659. ghc-unix-compat
  660. ghc-vault
  661. ghc-wai
  662. ghc-word8
  663. ghc-http-date
  664. ghc-simple-sendfile
  665. ghc-unliftio
  666. ghc-x509
  667. ghc-http2))
  668. (native-inputs
  669. (list curl
  670. ghc-silently
  671. ghc-hspec
  672. ghc-doctest
  673. ghc-lifted-base
  674. ghc-quickcheck
  675. ghc-hunit
  676. ghc-http-client
  677. hspec-discover))
  678. (home-page "https://github.com/yesodweb/wai")
  679. (synopsis "HTTP server library for Haskell's WAI")
  680. (description "Warp is a server library for HTTP/1.x and HTTP/2
  681. based WAI (Web Application Interface in Haskell).")
  682. (license license:expat)))
  683. (define-public ghc-tls-session-manager
  684. (package
  685. (name "ghc-tls-session-manager")
  686. (version "0.0.4")
  687. (source
  688. (origin
  689. (method url-fetch)
  690. (uri (string-append
  691. "https://hackage.haskell.org/package/"
  692. "tls-session-manager/tls-session-manager-"
  693. version ".tar.gz"))
  694. (sha256
  695. (base32
  696. "134kb5nz668f4xrr5g98g7fc1bwb3ri6q433a1i6asjkniwpy85s"))))
  697. (build-system haskell-build-system)
  698. (inputs
  699. (list ghc-auto-update ghc-clock ghc-psqueues ghc-tls))
  700. (home-page "https://hackage.haskell.org/package/tls-session-manager")
  701. (synopsis "In-memory TLS session manager")
  702. (description "This Haskell library provides a TLS session manager with
  703. limitation, automatic pruning, energy saving and replay resistance.")
  704. (license license:bsd-3)))
  705. (define-public ghc-warp-tls
  706. (package
  707. (name "ghc-warp-tls")
  708. (version "3.3.2")
  709. (source
  710. (origin
  711. (method url-fetch)
  712. (uri (string-append "https://hackage.haskell.org/package/"
  713. "warp-tls-" version "/"
  714. "warp-tls-" version ".tar.gz"))
  715. (sha256
  716. (base32
  717. "0b9viw26ymzq4q8snfddz3w59sqcf5ankxnw6f99iacxjhk6zs6m"))))
  718. (build-system haskell-build-system)
  719. (inputs
  720. (list ghc-cryptonite
  721. ghc-data-default-class
  722. ghc-network
  723. ghc-streaming-commons
  724. ghc-tls
  725. ghc-tls-session-manager
  726. ghc-unliftio
  727. ghc-wai
  728. ghc-warp))
  729. (home-page "https://github.com/yesodweb/wai")
  730. (synopsis "SSL/TLS support for Warp")
  731. (description "This package provides SSL/TLS support for Warp,
  732. a WAI handler, via the native Haskell TLS implementation.")
  733. (license license:expat)))
  734. (define-public ghc-websockets
  735. (package
  736. (name "ghc-websockets")
  737. (version "0.12.7.2")
  738. (source
  739. (origin
  740. (method url-fetch)
  741. (uri (string-append
  742. "https://hackage.haskell.org/package/websockets/websockets-"
  743. version
  744. ".tar.gz"))
  745. (sha256
  746. (base32
  747. "1b92a41l2var1ccg350mh2bjmb2plb6d79yzvmlwkd41nifmmi44"))))
  748. (build-system haskell-build-system)
  749. (inputs
  750. (list ghc-attoparsec
  751. ghc-base64-bytestring
  752. ghc-bytestring-builder
  753. ghc-case-insensitive
  754. ghc-network
  755. ghc-random
  756. ghc-sha
  757. ghc-clock
  758. ghc-async
  759. ghc-streaming-commons
  760. ghc-entropy))
  761. (native-inputs
  762. (list ghc-hunit ghc-quickcheck ghc-test-framework
  763. ghc-test-framework-hunit ghc-test-framework-quickcheck2))
  764. (home-page "https://jaspervdj.be/websockets/")
  765. (synopsis
  766. "Write WebSocket-capable servers in Haskell")
  767. (description
  768. "This library allows you to write WebSocket-capable servers.
  769. An example server:
  770. @url{https://github.com/jaspervdj/websockets/blob/master/example/server.lhs}
  771. An example client:
  772. @url{https://github.com/jaspervdj/websockets/blob/master/example/client.hs}
  773. See also:
  774. @itemize
  775. @item The specification of the WebSocket protocol:
  776. @url{http://www.whatwg.org/specs/web-socket-protocol/}
  777. @item The JavaScript API for dealing with WebSockets:
  778. @url{http://www.w3.org/TR/websockets/}
  779. @end itemize")
  780. (license license:bsd-3)))
  781. (define-public ghc-wai-websockets
  782. (package
  783. (name "ghc-wai-websockets")
  784. (version "3.0.1.2")
  785. (source
  786. (origin
  787. (method url-fetch)
  788. (uri (string-append
  789. "mirror://hackage/package/wai-websockets/wai-websockets-"
  790. version
  791. ".tar.gz"))
  792. (sha256
  793. (base32
  794. "0b2xmdsrsqpssyib53wbr6r8hf75789ndyyanv37sv99iyqcwz4i"))))
  795. (build-system haskell-build-system)
  796. (inputs
  797. (list ghc-wai ghc-case-insensitive ghc-network ghc-websockets
  798. ghc-http-types))
  799. (arguments
  800. `(#:configure-flags '("--flags=-example")))
  801. (home-page "https://github.com/yesodweb/wai")
  802. (synopsis
  803. "Provide a bridge between WAI and the websockets package")
  804. (description
  805. "Use websockets with WAI applications, primarily those hosted via Warp.")
  806. (license license:expat)))
  807. (define-public ghc-xss-sanitize
  808. (package
  809. (name "ghc-xss-sanitize")
  810. (version "0.3.6")
  811. (source
  812. (origin
  813. (method url-fetch)
  814. (uri (string-append
  815. "https://hackage.haskell.org/package/xss-sanitize/xss-sanitize-"
  816. version ".tar.gz"))
  817. (sha256
  818. (base32
  819. "1d72s3a6520iwwc1wbn9v2znqgbw6a5wwzb23iq8ny9ccnjyx1dk"))))
  820. (build-system haskell-build-system)
  821. (inputs
  822. (list ghc-tagsoup ghc-utf8-string ghc-css-text ghc-network-uri))
  823. (native-inputs
  824. (list ghc-attoparsec ghc-hspec ghc-hunit))
  825. (home-page "https://github.com/yesodweb/haskell-xss-sanitize")
  826. (synopsis "Sanitize untrusted HTML to prevent XSS attacks")
  827. (description "This library provides @code{sanitizeXSS}. Run untrusted
  828. HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS
  829. attacks.")
  830. (license license:bsd-3)))
  831. (define-public ghc-css-text
  832. (package
  833. (name "ghc-css-text")
  834. (version "0.1.3.0")
  835. (source
  836. (origin
  837. (method url-fetch)
  838. (uri (string-append
  839. "https://hackage.haskell.org/package/css-text/css-text-"
  840. version
  841. ".tar.gz"))
  842. (sha256
  843. (base32
  844. "0ynd9f4hn2sfwqzbsa0y7phmxq8za7jiblpjwx0ry8b372zhgxaz"))))
  845. (build-system haskell-build-system)
  846. (inputs
  847. (list ghc-attoparsec ghc-hspec ghc-quickcheck))
  848. (home-page "https://www.yesodweb.com/")
  849. (synopsis "CSS parser and renderer")
  850. (description "This package provides a CSS parser and renderer for
  851. Haskell.")
  852. (license license:bsd-3)))
  853. (define-public ghc-mime-types
  854. (package
  855. (name "ghc-mime-types")
  856. (version "0.1.0.9")
  857. (source (origin
  858. (method url-fetch)
  859. (uri (string-append "https://hackage.haskell.org/package/"
  860. "mime-types/mime-types-"
  861. version ".tar.gz"))
  862. (sha256
  863. (base32
  864. "1lkipa4v73z3l5lqs6sdhl898iq41kyxv2jb9agsajzgd58l6cha"))))
  865. (build-system haskell-build-system)
  866. (home-page "https://github.com/yesodweb/wai")
  867. (synopsis "Basic MIME type handling types and functions")
  868. (description
  869. "This library provides basic MIME type handling types and functions.")
  870. (license license:expat)))
  871. (define-public ghc-html
  872. (package
  873. (name "ghc-html")
  874. (version "1.0.1.2")
  875. (source
  876. (origin
  877. (method url-fetch)
  878. (uri (string-append
  879. "https://hackage.haskell.org/package/html/html-"
  880. version
  881. ".tar.gz"))
  882. (sha256
  883. (base32
  884. "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c"))))
  885. (build-system haskell-build-system)
  886. (home-page
  887. "https://hackage.haskell.org/package/html")
  888. (synopsis "HTML combinator library")
  889. (description
  890. "This package contains a combinator library for constructing HTML
  891. documents.")
  892. (license license:bsd-3)))
  893. (define-public ghc-html-conduit
  894. (package
  895. (name "ghc-html-conduit")
  896. (version "1.3.2.2")
  897. (source
  898. (origin
  899. (method url-fetch)
  900. (uri (string-append
  901. "https://hackage.haskell.org/package/html-conduit/"
  902. "html-conduit-" version ".tar.gz"))
  903. (sha256
  904. (base32
  905. "09bwrdam3y47kqllgg6w098ghqb8jb10dp4wxirsvx5ddpx9zpi6"))))
  906. (build-system haskell-build-system)
  907. (inputs
  908. (list ghc-resourcet
  909. ghc-conduit
  910. ghc-xml-conduit
  911. ghc-xml-types
  912. ghc-attoparsec
  913. ghc-conduit-extra))
  914. (native-inputs
  915. (list ghc-hspec ghc-hunit))
  916. (home-page "https://github.com/snoyberg/xml")
  917. (synopsis "Parse HTML documents using xml-conduit datatypes")
  918. (description
  919. "This package provides a parser for HTML documents that uses
  920. tagstream-conduit. It automatically balances mismatched tags, so that
  921. there shouldn't be any parse failures. It does not handle a full HTML
  922. document rendering, such as adding missing html and head tags. Note that,
  923. since version 1.3.1, it uses an inlined copy of tagstream-conduit with
  924. entity decoding bugfixes applied.")
  925. (license license:expat)))
  926. (define-public ghc-blaze-html
  927. (package
  928. (name "ghc-blaze-html")
  929. (version "0.9.1.2")
  930. (source
  931. (origin
  932. (method url-fetch)
  933. (uri (string-append "https://hackage.haskell.org/package/"
  934. "blaze-html/blaze-html-"
  935. version ".tar.gz"))
  936. (sha256
  937. (base32
  938. "0k1r1hddjgqighazcazxrx6xfhvy2gm8il8l82ainv3cai13yl30"))))
  939. (build-system haskell-build-system)
  940. (arguments
  941. `(#:tests? #f ; TODO: Depends on quickcheck<2.14
  942. #:cabal-revision
  943. ("1" "0wvlfb3rd9cm3p894p5rl9kggrsr5da3n8x9ydrbagx91yvkxns9")))
  944. (inputs
  945. (list ghc-blaze-builder ghc-blaze-markup))
  946. (native-inputs
  947. (list ghc-hunit ghc-quickcheck ghc-test-framework
  948. ghc-test-framework-hunit ghc-test-framework-quickcheck2))
  949. (home-page "http://jaspervdj.be/blaze")
  950. (synopsis "Fast HTML combinator library")
  951. (description "This library provides HTML combinators for Haskell.")
  952. (license license:bsd-3)))
  953. (define-public ghc-aeson
  954. (package
  955. (name "ghc-aeson")
  956. (version "1.5.6.0")
  957. (source
  958. (origin
  959. (method url-fetch)
  960. (uri (string-append
  961. "https://hackage.haskell.org/package/aeson/aeson-"
  962. version
  963. ".tar.gz"))
  964. (sha256
  965. (base32
  966. "1s5z4bgb5150h6a4cjf5vh8dmyrn6ilh29gh05999v6jwd5w6q83"))))
  967. (build-system haskell-build-system)
  968. (arguments
  969. `(#:tests? #f ; FIXME: testing libraries are missing.
  970. #:cabal-revision
  971. ("2" "1zxkarvmbgc2cpcc9sx1rlqm7nfh473052898ypiwk8azawp1hbj")))
  972. (outputs '("out" "static" "doc"))
  973. (inputs
  974. (list ghc-attoparsec
  975. ghc-base-compat-batteries
  976. ghc-data-fix
  977. ghc-dlist
  978. ghc-hashable
  979. ghc-primitive
  980. ghc-scientific
  981. ghc-strict
  982. ghc-tagged
  983. ghc-th-abstraction
  984. ghc-these
  985. ghc-time-compat
  986. ghc-unordered-containers
  987. ghc-uuid-types
  988. ghc-vector))
  989. ; (native-inputs
  990. ; `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
  991. ; ("ghc-base-compat" ,ghc-base-compat)
  992. ; ("ghc-base-orphans" ,ghc-base-orphans)
  993. ; ("ghc-diff" ,ghc-diff)
  994. ; ("ghc-generic-deriving" ,ghc-generic-deriving)
  995. ; ("ghc-hashable-time" ,ghc-hashable-time)
  996. ; ("ghc-integer-logarithms" ,ghc-integer-logarithms)
  997. ; ("ghc-quickcheck" ,ghc-quickcheck)
  998. ; ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
  999. ; ("ghc-tasty" ,ghc-tasty)
  1000. ; ("ghc-tasty-golden" ,ghc-tasty-golden)
  1001. ; ("ghc-tasty-hunit" ,ghc-tasty-hunit)
  1002. ; ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
  1003. (home-page "https://github.com/bos/aeson")
  1004. (synopsis "Fast JSON parsing and encoding")
  1005. (description "This package provides a JSON parsing and encoding library
  1006. for Haskell, optimized for ease of use and high performance. (A note on
  1007. naming: in Greek mythology, Aeson was the father of Jason.)")
  1008. (license license:bsd-3)))
  1009. (define-public ghc-aeson-pretty
  1010. (package
  1011. (name "ghc-aeson-pretty")
  1012. (version "0.8.9")
  1013. (source (origin
  1014. (method url-fetch)
  1015. (uri (string-append
  1016. "https://hackage.haskell.org/package/aeson-pretty/aeson-pretty-"
  1017. version ".tar.gz"))
  1018. (sha256
  1019. (base32
  1020. "021az9az6xik9c9s3rnar5fr1lgy2h3igibf5ixnc7ps3m2lzg2x"))))
  1021. (build-system haskell-build-system)
  1022. (inputs
  1023. (list ghc-aeson
  1024. ghc-base-compat
  1025. ghc-scientific
  1026. ghc-vector
  1027. ghc-unordered-containers
  1028. ghc-attoparsec
  1029. ghc-cmdargs))
  1030. (home-page "https://github.com/informatikr/aeson-pretty")
  1031. (synopsis "JSON pretty-printing library and command-line tool")
  1032. (description
  1033. "This package provides a JSON pretty-printing library compatible with aeson
  1034. as well as a command-line tool to improve readability of streams of JSON data.
  1035. The library provides the function @code{encodePretty}. It is a drop-in
  1036. replacement for aeson's @code{encode} function, producing JSON-ByteStrings for
  1037. human readers. The command-line tool reads JSON from stdin and writes
  1038. prettified JSON to stdout. It also offers a complementary \"compact\"-mode,
  1039. essentially the opposite of pretty-printing.")
  1040. (license license:bsd-3)))
  1041. (define-public ghc-aeson-qq
  1042. (package
  1043. (name "ghc-aeson-qq")
  1044. (version "0.8.4")
  1045. (source (origin
  1046. (method url-fetch)
  1047. (uri (string-append "https://hackage.haskell.org/package/"
  1048. "aeson-qq/aeson-qq-" version ".tar.gz"))
  1049. (sha256
  1050. (base32
  1051. "0dpklq2xdhrkg1rdc7zfdjnzm6c3qxx2i1xskrqdxpqi84ffnlyh"))))
  1052. (build-system haskell-build-system)
  1053. (inputs
  1054. (list ghc-base-compat
  1055. ghc-attoparsec
  1056. ghc-scientific
  1057. ghc-vector
  1058. ghc-aeson
  1059. ghc-haskell-src-meta))
  1060. (native-inputs
  1061. (list ghc-hspec hspec-discover))
  1062. (home-page "https://github.com/zalora/aeson-qq")
  1063. (synopsis "JSON quasiquoter for Haskell")
  1064. (description
  1065. "aeson-qq provides a JSON quasiquoter for Haskell. This package exposes
  1066. the function @code{aesonQQ} that compile-time converts a string representation
  1067. of a JSON value into a @code{Data.Aeson.Value}.")
  1068. (license license:expat)))
  1069. (define-public ghc-aeson-better-errors
  1070. (package
  1071. (name "ghc-aeson-better-errors")
  1072. (version "0.9.1.0")
  1073. (source
  1074. (origin
  1075. (method url-fetch)
  1076. (uri (string-append
  1077. "mirror://hackage/package/aeson-better-errors/aeson-better-errors-"
  1078. version
  1079. ".tar.gz"))
  1080. (sha256
  1081. (base32
  1082. "09vkyrhwak3bmpfsqcd2az8hfqqkxyhg468hv5avgisy0nzh3w38"))))
  1083. (build-system haskell-build-system)
  1084. (inputs
  1085. (list ghc-aeson
  1086. ghc-unordered-containers
  1087. ghc-dlist
  1088. ghc-scientific
  1089. ghc-vector
  1090. ghc-transformers-compat
  1091. ghc-void))
  1092. (home-page
  1093. "https://github.com/hdgarrood/aeson-better-errors")
  1094. (synopsis
  1095. "Better error messages when decoding JSON values in Haskell")
  1096. (description
  1097. "Gives you the tools to build parsers to decode JSON values, and gives
  1098. good error messages when parsing fails. See also
  1099. @url{http://harry.garrood.me/blog/aeson-better-errors/}.")
  1100. (license license:expat)))
  1101. (define-public ghc-multipart
  1102. (package
  1103. (name "ghc-multipart")
  1104. (version "0.2.1")
  1105. (source
  1106. (origin
  1107. (method url-fetch)
  1108. (uri (string-append
  1109. "https://hackage.haskell.org/package/multipart/multipart-"
  1110. version
  1111. ".tar.gz"))
  1112. (sha256
  1113. (base32
  1114. "0p6n4knxpjv70nbl6cmd6x7gkdjsjqp4ya7fz00bfrqp7jvhlivn"))))
  1115. (build-system haskell-build-system)
  1116. (inputs
  1117. (list ghc-stringsearch))
  1118. (home-page
  1119. "http://www.github.com/silkapp/multipart")
  1120. (synopsis
  1121. "HTTP multipart library")
  1122. (description
  1123. "HTTP multipart split out of the cgi package, for Haskell.")
  1124. (license license:bsd-3)))
  1125. (define-public ghc-uri-encode
  1126. (package
  1127. (name "ghc-uri-encode")
  1128. (version "1.5.0.7")
  1129. (source
  1130. (origin
  1131. (method url-fetch)
  1132. (uri (string-append
  1133. "https://hackage.haskell.org/package/uri-encode/uri-encode-"
  1134. version ".tar.gz"))
  1135. (sha256
  1136. (base32
  1137. "0lj2h701af12539p957rw24bxr07mfqd5r4h52i42f43ax165767"))))
  1138. (build-system haskell-build-system)
  1139. (inputs
  1140. (list ghc-utf8-string ghc-network-uri))
  1141. (home-page "https://hackage.haskell.org/package/uri-encode")
  1142. (synopsis "Unicode aware uri-encoding")
  1143. (description "Unicode aware uri-encoding for Haskell.")
  1144. (license license:bsd-3)))
  1145. (define-public ghc-path-pieces
  1146. (package
  1147. (name "ghc-path-pieces")
  1148. (version "0.2.1")
  1149. (source
  1150. (origin
  1151. (method url-fetch)
  1152. (uri (string-append "https://hackage.haskell.org/package/"
  1153. "path-pieces-" version "/"
  1154. "path-pieces-" version ".tar.gz"))
  1155. (sha256
  1156. (base32
  1157. "0vx3sivcsld76058925hym2j6hm3g71f0qjr7v59f1g2afgx82q8"))))
  1158. (build-system haskell-build-system)
  1159. (native-inputs (list ghc-hunit ghc-hspec ghc-quickcheck))
  1160. (home-page "https://github.com/yesodweb/path-pieces")
  1161. (synopsis "Used in Yesod to automatically marshall data in the request path")
  1162. (description "This Haskell package provides two typeclasses for converting
  1163. Haskell data types to and from route pieces.")
  1164. (license license:bsd-3)))
  1165. (define-public ghc-skein
  1166. (package
  1167. (name "ghc-skein")
  1168. (version "1.0.9.4")
  1169. (source
  1170. (origin
  1171. (method url-fetch)
  1172. (uri (string-append "https://hackage.haskell.org/package/"
  1173. "skein-" version "/"
  1174. "skein-" version ".tar.gz"))
  1175. (sha256
  1176. (base32
  1177. "1jdqdk0rz2wnvw735clnj8jh0a9rkrbqjg7vk3w6wczdql6cm0pq"))))
  1178. (build-system haskell-build-system)
  1179. (inputs (list ghc-cereal ghc-tagged ghc-crypto-api))
  1180. (native-inputs (list ghc-hspec))
  1181. (home-page "https://github.com/yesodweb/path-pieces")
  1182. (synopsis "Skein family of cryptographic hash functions for Haskell")
  1183. (description "@uref{(http://www.skein-hash.info, Skein} is a family of
  1184. fast secure cryptographic hash functions designed by Niels Ferguson, Stefan
  1185. Lucks, Bruce Schneier, Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon
  1186. Callas and Jesse Walker.
  1187. This Haskell package uses bindings to the optimized C implementation of Skein.")
  1188. (license license:bsd-3)))
  1189. (define-public ghc-clientsession
  1190. (package
  1191. (name "ghc-clientsession")
  1192. (version "0.9.1.2")
  1193. (source
  1194. (origin
  1195. (method url-fetch)
  1196. (uri (string-append "https://hackage.haskell.org/package/"
  1197. "clientsession-" version "/"
  1198. "clientsession-" version ".tar.gz"))
  1199. (sha256
  1200. (base32
  1201. "0s6h4ykj16mpf7nlw2iqn2ji0p8g1fn5ni0s7yqaili6vv2as5ar"))))
  1202. (build-system haskell-build-system)
  1203. (inputs (list ghc-cereal
  1204. ghc-tagged
  1205. ghc-crypto-api
  1206. ghc-skein
  1207. ghc-base64-bytestring
  1208. ghc-entropy
  1209. ghc-cprng-aes
  1210. ghc-cipher-aes
  1211. ghc-crypto-random
  1212. ghc-setenv))
  1213. (native-inputs (list ghc-hunit ghc-hspec ghc-quickcheck))
  1214. (home-page "https://github.com/yesodweb/clientsession/tree/master")
  1215. (synopsis "Haskell library for securely store session data in a
  1216. client-side cookie")
  1217. (description "This Haskell package achieves security through AES-CTR
  1218. encryption and Skein-MAC-512-256 authentication. Uses Base64 encoding to
  1219. avoid any issues with characters.")
  1220. (license license:expat)))
  1221. (define-public ghc-yesod-core
  1222. (package
  1223. (name "ghc-yesod-core")
  1224. (version "1.6.21.0")
  1225. (source
  1226. (origin
  1227. (method url-fetch)
  1228. (uri (string-append "https://hackage.haskell.org/package/"
  1229. "yesod-core-" version "/"
  1230. "yesod-core-" version ".tar.gz"))
  1231. (sha256
  1232. (base32
  1233. "0wmh7ip318p89lyy6k5mvxkkpq43knp41wlq9iaf3icz0ahqdmb7"))))
  1234. (build-system haskell-build-system)
  1235. (inputs (list ghc-wai
  1236. ghc-extra
  1237. ghc-shakespeare
  1238. ghc-blaze-builder
  1239. ghc-clientsession
  1240. ghc-random
  1241. ghc-cereal
  1242. ghc-old-locale
  1243. ghc-unliftio
  1244. ghc-unordered-containers
  1245. ghc-monad-control
  1246. ghc-transformers-base
  1247. ghc-cookie
  1248. ghc-http-types
  1249. ghc-case-insensitive
  1250. ghc-vector
  1251. ghc-aeson
  1252. ghc-fast-logger
  1253. ghc-wai-logger
  1254. ghc-monad-logger
  1255. ghc-conduit
  1256. ghc-resourcet
  1257. ghc-rio
  1258. ghc-lifted-base
  1259. ghc-blaze-html
  1260. ghc-blaze-markup
  1261. ghc-data-default
  1262. ghc-safe
  1263. ghc-warp
  1264. ghc-unix-compat
  1265. ghc-conduit-extra
  1266. ghc-exceptions
  1267. ghc-deepseq-generics
  1268. ghc-mwc-random
  1269. ghc-primitive
  1270. ghc-word8
  1271. ghc-auto-update
  1272. ghc-semigroups
  1273. ghc-byteable))
  1274. (native-inputs (list ghc-hspec
  1275. ghc-path-pieces
  1276. ghc-hunit
  1277. ghc-hspec-expectations
  1278. ghc-quickcheck
  1279. ghc-network
  1280. ghc-async
  1281. ghc-streaming-commons
  1282. ghc-wai-extra))
  1283. (home-page "https://www.yesodweb.com")
  1284. (synopsis "Core package for the Yesod web framework")
  1285. (description "This Haskell package provides all core functionality, for
  1286. Yesod, on which other packages can be built. It provides dispatch, handler
  1287. functions, widgets, etc.")
  1288. (license license:expat)))
  1289. (define-public ghc-yesod-persistent
  1290. (package
  1291. (name "ghc-yesod-persistent")
  1292. (version "1.6.0.7")
  1293. (source
  1294. (origin
  1295. (method url-fetch)
  1296. (uri (string-append "https://hackage.haskell.org/package/"
  1297. "yesod-persistent-" version "/"
  1298. "yesod-persistent-" version ".tar.gz"))
  1299. (sha256
  1300. (base32
  1301. "102xmp7n08sk1g5rv31jpln2v9kqf1zsqsnmi83mnhmgggcbj1k4"))))
  1302. (build-system haskell-build-system)
  1303. (arguments `(#:tests? #f)) ; FIXME: hspec-discover not available in PATH.
  1304. (inputs (list ghc-yesod-core
  1305. ghc-persistent
  1306. ghc-persistent-template
  1307. ghc-blaze-builder
  1308. ghc-conduit
  1309. ghc-resourcet
  1310. ghc-resource-pool))
  1311. (native-inputs (list ghc-hspec ghc-wai-extra ghc-yesod-core
  1312. ghc-persistent-sqlite))
  1313. (home-page "https://www.yesodweb.com/")
  1314. (synopsis "Helpers for using Persistent from Yesod")
  1315. (description "This Haskell package provides helpers for using Persistent
  1316. from Yesod.")
  1317. (license license:expat)))
  1318. (define-public ghc-yesod-form
  1319. (package
  1320. (name "ghc-yesod-form")
  1321. (version "1.7.0")
  1322. (source
  1323. (origin
  1324. (method url-fetch)
  1325. (uri (string-append
  1326. "https://hackage.haskell.org/package/yesod-form/yesod-form-"
  1327. version
  1328. ".tar.gz"))
  1329. (sha256
  1330. (base32
  1331. "170gby381h5pg9njn908cyx2931yiv79x3rc5npg2rd74kif06vi"))))
  1332. (build-system haskell-build-system)
  1333. (inputs
  1334. (list ghc-yesod-core
  1335. ghc-yesod-persistent
  1336. ghc-shakespeare
  1337. ghc-persistent
  1338. ghc-data-default
  1339. ghc-xss-sanitize
  1340. ghc-blaze-builder
  1341. ghc-email-validate
  1342. ghc-wai
  1343. ghc-blaze-html
  1344. ghc-blaze-markup
  1345. ghc-attoparsec
  1346. ghc-byteable
  1347. ghc-aeson
  1348. ghc-resourcet
  1349. ghc-semigroups
  1350. ghc-network-uri
  1351. ghc-hspec))
  1352. (home-page "https://www.yesodweb.com")
  1353. (synopsis "Form handling support for Yesod Web Framework")
  1354. (description "This Haskell package provides a set of basic form inputs such
  1355. as text, number, time, checkbox, select, textarea, etc through the
  1356. @code{Yesod.Form.Fields} module. Also, there is @code{Yesod.Form.Nic} module
  1357. providing richtext field using Nic editor.")
  1358. (license license:expat)))
  1359. (define-public ghc-yesod
  1360. (package
  1361. (name "ghc-yesod")
  1362. (version "1.6.1.2")
  1363. (source
  1364. (origin
  1365. (method url-fetch)
  1366. (uri (string-append
  1367. "https://hackage.haskell.org/package/yesod/yesod-"
  1368. version ".tar.gz"))
  1369. (sha256
  1370. (base32
  1371. "13r0ispprj41kgn2rkc7zhy1rxfmgpjbmdlnys15h0ihhh3zhw2f"))))
  1372. (build-system haskell-build-system)
  1373. (inputs
  1374. (list ghc-yesod-core
  1375. ghc-yesod-persistent
  1376. ghc-yesod-form
  1377. ghc-wai
  1378. ghc-wai-extra
  1379. ghc-warp
  1380. ghc-aeson
  1381. ghc-file-embed
  1382. ghc-data-default-class
  1383. ghc-unordered-containers
  1384. ghc-yaml
  1385. ghc-monad-logger
  1386. ghc-fast-logger
  1387. ghc-conduit
  1388. ghc-shakespeare
  1389. ghc-streaming-commons
  1390. ghc-wai-logger))
  1391. (home-page "https://www.yesodweb.com")
  1392. (synopsis "Framework for creating type-safe, RESTful web applications")
  1393. (description "The Haskell package package groups together the various
  1394. Yesod related packages into one cohesive whole. This is the version of Yesod,
  1395. whereas most of the core code lives in @code{ghc-yesod-core}.")
  1396. (license license:expat)))
  1397. (define-public ghc-hxt-charproperties
  1398. (package
  1399. (name "ghc-hxt-charproperties")
  1400. (version "9.5.0.0")
  1401. (source
  1402. (origin
  1403. (method url-fetch)
  1404. (uri (string-append "https://hackage.haskell.org/package/"
  1405. "hxt-charproperties/hxt-charproperties-"
  1406. version ".tar.gz"))
  1407. (sha256
  1408. (base32
  1409. "0jm98jddbsd60jc2bz8wa71rslagbaqf00ia7fvfsaiaa54nk0r8"))))
  1410. (build-system haskell-build-system)
  1411. (home-page "https://github.com/UweSchmidt/hxt")
  1412. (synopsis "Character properties and classes for XML and Unicode")
  1413. (description
  1414. "The modules provided by this package contain predicates for Unicode
  1415. blocks and char properties and character predicates defined by XML. The
  1416. supported Unicode version is 7.0.0")
  1417. (license license:expat)))
  1418. (define-public ghc-hxt-unicode
  1419. (package
  1420. (name "ghc-hxt-unicode")
  1421. (version "9.0.2.4")
  1422. (source
  1423. (origin
  1424. (method url-fetch)
  1425. (uri (string-append
  1426. "https://hackage.haskell.org/package/hxt-unicode/hxt-unicode-"
  1427. version
  1428. ".tar.gz"))
  1429. (sha256
  1430. (base32
  1431. "0rj48cy8z4fl3zpg5bpa458kqr83adav6jnqv4i71dclpprj6n3v"))))
  1432. (build-system haskell-build-system)
  1433. (inputs
  1434. (list ghc-hxt-charproperties))
  1435. (home-page
  1436. "http://www.fh-wedel.de/~si/HXmlToolbox/index.html https://github.com/UweSchmidt/hxt")
  1437. (synopsis
  1438. "Unicode en-/decoding functions for utf8, iso-latin-* and other encodings")
  1439. (description
  1440. "This package provides Unicode encoding and decoding functions for
  1441. encodings used in the Haskell XML Toolbox. ISO Latin 1-16, utf8, utf16, ASCII
  1442. are supported. Decoding is done with lazy functions, errors may be detected or
  1443. ignored.")
  1444. (license license:expat)))
  1445. (define-public ghc-hxt-regex-xmlschema
  1446. (package
  1447. (name "ghc-hxt-regex-xmlschema")
  1448. (version "9.2.0.7")
  1449. (source
  1450. (origin
  1451. (method url-fetch)
  1452. (uri (string-append "https://hackage.haskell.org/package/"
  1453. "hxt-regex-xmlschema/hxt-regex-xmlschema-"
  1454. version ".tar.gz"))
  1455. (sha256
  1456. (base32
  1457. "0ynrf65m7abq2fjnarlwq6i1r99pl89npibxx05rlplcgpybrdmr"))))
  1458. (build-system haskell-build-system)
  1459. (inputs
  1460. (list ghc-hxt-charproperties ghc-hunit))
  1461. (home-page "https://wiki.haskell.org/Regular_expressions_for_XML_Schema")
  1462. (synopsis "Regular expression library for W3C XML Schema regular expressions")
  1463. (description
  1464. "This library supports full W3C XML Schema regular expressions inclusive
  1465. all Unicode character sets and blocks. It is implemented by the technique of
  1466. derivations of regular expressions.")
  1467. (license license:expat)))
  1468. (define-public ghc-hxt
  1469. (package
  1470. (name "ghc-hxt")
  1471. (version "9.3.1.22")
  1472. (source
  1473. (origin
  1474. (method url-fetch)
  1475. (uri (string-append
  1476. "https://hackage.haskell.org/package/hxt/hxt-"
  1477. version
  1478. ".tar.gz"))
  1479. (sha256
  1480. (base32
  1481. "1n9snbdl46x23ka7bbsls1vsn0plpmfmbpbl0msjfm92fkk2yq7g"))))
  1482. (build-system haskell-build-system)
  1483. (outputs '("out" "static" "doc"))
  1484. (inputs
  1485. (list ghc-hxt-charproperties ghc-hxt-unicode ghc-hxt-regex-xmlschema
  1486. ghc-network-uri))
  1487. (home-page "https://github.com/UweSchmidt/hxt")
  1488. (synopsis "Collection of tools for processing XML with Haskell")
  1489. (description
  1490. "The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but
  1491. introduces a more general approach for processing XML with Haskell.")
  1492. (license license:expat)))
  1493. (define-public ghc-http-common
  1494. (package
  1495. (name "ghc-http-common")
  1496. (version "0.8.3.4")
  1497. (source
  1498. (origin
  1499. (method url-fetch)
  1500. (uri (string-append "https://hackage.haskell.org/package/"
  1501. "http-common/http-common-" version ".tar.gz"))
  1502. (sha256
  1503. (base32
  1504. "1xpbnfac0fqa5r670ggwm4kq3cmz9jpaw9bx40j9w9qiw6xi4i28"))))
  1505. (build-system haskell-build-system)
  1506. (inputs
  1507. (list ghc-base64-bytestring
  1508. ghc-blaze-builder
  1509. ghc-case-insensitive
  1510. ghc-network
  1511. ghc-random
  1512. ghc-unordered-containers))
  1513. (home-page "https://github.com/afcowie/http-streams/")
  1514. (synopsis "Common types for HTTP clients and servers")
  1515. (description "Base types used by a variety of HTTP clients and
  1516. servers. See http-streams @code{Network.Http.Client} or pipes-http
  1517. @code{Pipes.Http.Client} for full documentation. You can import
  1518. @code{Network.Http.Types} if you like, but both http-streams and
  1519. pipes-http re-export this package's types and functions.")
  1520. (license license:bsd-3)))
  1521. (define-public ghc-http-streams
  1522. (package
  1523. (name "ghc-http-streams")
  1524. (version "0.8.9.4")
  1525. (source
  1526. (origin
  1527. (method url-fetch)
  1528. (uri (string-append "https://hackage.haskell.org/package/"
  1529. "http-streams/http-streams-" version ".tar.gz"))
  1530. (sha256
  1531. (base32
  1532. "03xdcb0v735xdrkjlm1w56mskh3x08cbsjrcd7wn4li65ixc20xa"))))
  1533. (build-system haskell-build-system)
  1534. (inputs
  1535. (list ghc-attoparsec
  1536. ghc-base64-bytestring
  1537. ghc-blaze-builder
  1538. ghc-case-insensitive
  1539. ghc-io-streams
  1540. ghc-hsopenssl
  1541. ghc-openssl-streams
  1542. ghc-unordered-containers
  1543. ghc-aeson
  1544. ghc-http-common
  1545. ghc-network-uri
  1546. ghc-network))
  1547. (arguments
  1548. `(#:tests? #f)) ; tests rely on an outdated version of snap-server
  1549. (home-page "https://github.com/afcowie/http-streams/")
  1550. (synopsis "HTTP client using io-streams")
  1551. (description "An HTTP client using the Snap Framework's io-streams
  1552. library to handle the streaming IO. The API is optimized for ease of
  1553. use for the rather common case of code needing to query web services and
  1554. deal with the result.")
  1555. (license license:bsd-3)))
  1556. (define-public ghc-snap-core
  1557. (package
  1558. (name "ghc-snap-core")
  1559. (version "1.0.4.2")
  1560. (source
  1561. (origin
  1562. (method url-fetch)
  1563. (uri (string-append "https://hackage.haskell.org/package/"
  1564. "snap-core/snap-core-" version ".tar.gz"))
  1565. (sha256
  1566. (base32
  1567. "0zxdhx4wk70bkn71574lyz3zhq79yy98rv05r4564rd100xw3fqs"))))
  1568. (build-system haskell-build-system)
  1569. (arguments
  1570. `(#:tests? #f ; TODO: Fail to compile.
  1571. #:cabal-revision
  1572. ("1" "065v61clskzikywv0gy9n4fjaszi2fnjklal83kqbzhzzgkf83ng")))
  1573. (inputs
  1574. (list ghc-old-locale
  1575. ghc-hunit
  1576. ghc-attoparsec
  1577. ghc-bytestring-builder
  1578. ghc-case-insensitive
  1579. ghc-lifted-base
  1580. ghc-io-streams
  1581. ghc-hashable
  1582. ghc-monad-control
  1583. ghc-random
  1584. ghc-readable
  1585. ghc-regex-posix
  1586. ghc-transformers-base
  1587. ghc-unix-compat
  1588. ghc-unordered-containers
  1589. ghc-vector
  1590. ghc-network-uri
  1591. ghc-network))
  1592. (native-inputs
  1593. (list ghc-quickcheck
  1594. ghc-parallel
  1595. ghc-test-framework
  1596. ghc-test-framework-hunit
  1597. ghc-test-framework-quickcheck2
  1598. ghc-zlib))
  1599. (home-page "http://snapframework.com/")
  1600. (synopsis "Haskell Web Framework (core interfaces and types)")
  1601. (description "Snap is a simple and fast web development framework
  1602. and server written in Haskell. For more information, you can visit the
  1603. Snap project website at @uref{http://snapframework.com/}. This library
  1604. contains the core definitions and types for the Snap framework.")
  1605. (license license:bsd-3)))
  1606. (define-public ghc-snap-server
  1607. (package
  1608. (name "ghc-snap-server")
  1609. (version "1.1.2.0")
  1610. (source
  1611. (origin
  1612. (method url-fetch)
  1613. (uri (string-append "https://hackage.haskell.org/package/"
  1614. "snap-server/snap-server-" version ".tar.gz"))
  1615. (sha256
  1616. (base32
  1617. "0w4yv9a5ilpma0335ariwap2iscmdbaaif88lq3cm7px910nyc4j"))))
  1618. (build-system haskell-build-system)
  1619. (inputs
  1620. (list ghc-attoparsec
  1621. ghc-blaze-builder
  1622. ghc-bytestring-builder
  1623. ghc-case-insensitive
  1624. ghc-clock
  1625. ghc-io-streams
  1626. ghc-io-streams-haproxy
  1627. ghc-lifted-base
  1628. ghc-network
  1629. ghc-old-locale
  1630. ghc-snap-core
  1631. ghc-unix-compat
  1632. ghc-vector))
  1633. (native-inputs
  1634. (list ghc-base16-bytestring
  1635. ghc-monad-control
  1636. ghc-random
  1637. ghc-threads
  1638. ghc-hunit
  1639. ghc-quickcheck
  1640. ghc-http-streams
  1641. ghc-http-common
  1642. ghc-parallel
  1643. ghc-test-framework
  1644. ghc-test-framework-hunit
  1645. ghc-test-framework-quickcheck2))
  1646. (home-page "http://snapframework.com/")
  1647. (synopsis "Web server for the Snap Framework")
  1648. (description "Snap is a simple and fast web development framework
  1649. and server written in Haskell. For more information, you can visit the
  1650. Snap project website at @uref{http://snapframework.com/}. The Snap HTTP
  1651. server is a high performance web server library written in Haskell.
  1652. Together with the snap-core library upon which it depends, it provides a
  1653. clean and efficient Haskell programming interface to the HTTP
  1654. protocol.")
  1655. (license license:bsd-3)))
  1656. (define-public ghc-js-jquery
  1657. (package
  1658. (name "ghc-js-jquery")
  1659. (version "3.3.1")
  1660. (source
  1661. (origin
  1662. (method url-fetch)
  1663. (uri
  1664. (string-append
  1665. "https://hackage.haskell.org/package/js-jquery/js-jquery-"
  1666. version ".tar.gz"))
  1667. (sha256
  1668. (base32
  1669. "16q68jzbs7kp07dnq8cprdcc8fd41rim38039vg0w4x11lgniq70"))))
  1670. (build-system haskell-build-system)
  1671. (arguments `(#:tests? #f)) ; tests do network IO
  1672. (home-page "https://github.com/ndmitchell/js-jquery")
  1673. (synopsis "Obtain minified jQuery code")
  1674. (description "This package bundles the minified
  1675. @url{http://jquery.com/, jQuery} code into a Haskell package, so it can
  1676. be depended upon by Cabal packages. The first three components of the
  1677. version number match the upstream jQuery version. The package is
  1678. designed to meet the redistribution requirements of downstream
  1679. users (e.g. Debian).")
  1680. (license license:expat)))
  1681. (define-public ghc-js-flot
  1682. (package
  1683. (name "ghc-js-flot")
  1684. (version "0.8.3")
  1685. (source
  1686. (origin
  1687. (method url-fetch)
  1688. (uri
  1689. (string-append
  1690. "https://hackage.haskell.org/package/js-flot/js-flot-"
  1691. version ".tar.gz"))
  1692. (sha256
  1693. (base32
  1694. "0yjyzqh3qzhy5h3nql1fckw0gcfb0f4wj9pm85nafpfqp2kg58hv"))))
  1695. (build-system haskell-build-system)
  1696. (inputs
  1697. (list ghc-http))
  1698. (home-page "https://github.com/ndmitchell/js-flot")
  1699. (synopsis "Obtain minified flot code")
  1700. (description "This package bundles the minified
  1701. @url{http://www.flotcharts.org/, Flot} code (a jQuery plotting library)
  1702. into a Haskell package, so it can be depended upon by Cabal packages.
  1703. The first three components of the version number match the upstream flot
  1704. version. The package is designed to meet the redistribution
  1705. requirements of downstream users (e.g. Debian).")
  1706. (license license:expat)))
  1707. (define-public ghc-happstack-server
  1708. (package
  1709. (name "ghc-happstack-server")
  1710. (version "7.7.1.1")
  1711. (source
  1712. (origin
  1713. (method url-fetch)
  1714. (uri (string-append
  1715. "https://hackage.haskell.org/package/happstack-server/happstack-server-"
  1716. version ".tar.gz"))
  1717. (sha256
  1718. (base32
  1719. "0nc5rnvrzl9m3pinmdq234m80qkf4jszbdqnd567f7lh09yiqw9n"))))
  1720. (build-system haskell-build-system)
  1721. (inputs
  1722. (list ghc-network
  1723. ghc-network-bsd
  1724. ghc-network-uri
  1725. ghc-base64-bytestring
  1726. ghc-blaze-html
  1727. ghc-exceptions
  1728. ghc-extensible-exceptions
  1729. ghc-hslogger
  1730. ghc-html
  1731. ghc-monad-control
  1732. ghc-old-locale
  1733. ghc-semigroups
  1734. ghc-sendfile
  1735. ghc-system-filepath
  1736. ghc-syb
  1737. ghc-threads
  1738. ghc-transformers-base
  1739. ghc-transformers-compat
  1740. ghc-utf8-string
  1741. ghc-zlib))
  1742. (native-inputs (list ghc-hunit))
  1743. (home-page "http://happstack.com")
  1744. (synopsis "Web related tools and services for Haskell")
  1745. (description
  1746. "Happstack Server provides an HTTP server and a rich set of functions for
  1747. routing requests, handling query parameters, generating responses, working with
  1748. cookies, serving files, and more.")
  1749. (license license:bsd-3)))
  1750. (define-public ghc-sendfile
  1751. (package
  1752. (name "ghc-sendfile")
  1753. (version "0.7.11.1")
  1754. (source
  1755. (origin
  1756. (method url-fetch)
  1757. (uri (string-append
  1758. "https://hackage.haskell.org/package/sendfile/sendfile-"
  1759. version ".tar.gz"))
  1760. (sha256
  1761. (base32
  1762. "0988snmx3bylpw3kcq8hsgji8idc6xcrcfp275qjv3apfdgc9rp0"))))
  1763. (build-system haskell-build-system)
  1764. (inputs (list ghc-network))
  1765. (home-page
  1766. "https://hub.darcs.net/stepcut/sendfile")
  1767. (synopsis "Portable sendfile library for Haskell")
  1768. (description
  1769. "Haskell library which exposes zero-copy sendfile functionality in a portable way.")
  1770. (license license:bsd-3)))
  1771. (define-public ghc-scalpel-core
  1772. (package
  1773. (name "ghc-scalpel-core")
  1774. (version "0.6.2")
  1775. (source
  1776. (origin
  1777. (method url-fetch)
  1778. (uri (string-append
  1779. "https://hackage.haskell.org/package/scalpel-core/"
  1780. "scalpel-core-" version ".tar.gz"))
  1781. (sha256
  1782. (base32
  1783. "07mjff8aqwabx8yhq8bd7jpnarkkrjqss8h8s2wkfmfj808fllmf"))))
  1784. (build-system haskell-build-system)
  1785. (inputs
  1786. (list ghc-data-default
  1787. ghc-fail
  1788. ghc-pointedlist
  1789. ghc-regex-base
  1790. ghc-regex-tdfa
  1791. ghc-tagsoup
  1792. ghc-vector))
  1793. (native-inputs (list ghc-hunit))
  1794. (home-page "https://github.com/fimad/scalpel")
  1795. (synopsis
  1796. "High level web scraping library for Haskell")
  1797. (description
  1798. "Scalpel core provides a subset of the scalpel web scraping library
  1799. that is intended to have lightweight dependencies and to be free of all
  1800. non-Haskell dependencies.")
  1801. (license license:asl2.0)))
  1802. (define-public ghc-scalpel
  1803. (package
  1804. (name "ghc-scalpel")
  1805. (version "0.6.2")
  1806. (source
  1807. (origin
  1808. (method url-fetch)
  1809. (uri (string-append
  1810. "https://hackage.haskell.org/package/scalpel/"
  1811. "scalpel-" version ".tar.gz"))
  1812. (sha256
  1813. (base32
  1814. "04hhvk0yjxha3yg6n9fxivrz97hpjjiiblnj0bvs5myax1ggkjch"))))
  1815. (build-system haskell-build-system)
  1816. (inputs
  1817. (list ghc-scalpel-core
  1818. ghc-case-insensitive
  1819. ghc-data-default
  1820. ghc-http-client
  1821. ghc-http-client-tls
  1822. ghc-tagsoup))
  1823. (home-page "https://github.com/fimad/scalpel")
  1824. (synopsis
  1825. "High level web scraping library for Haskell")
  1826. (description
  1827. "Scalpel is a web scraping library inspired by libraries like Parsec
  1828. and Perl's @code{Web::Scraper}. Scalpel builds on top of TagSoup to provide a
  1829. declarative and monadic interface.")
  1830. (license license:asl2.0)))
  1831. (define-public ghc-sourcemap
  1832. (package
  1833. (name "ghc-sourcemap")
  1834. (version "0.1.6.1")
  1835. (source
  1836. (origin
  1837. (method url-fetch)
  1838. (uri (string-append
  1839. "https://hackage.haskell.org/package/sourcemap/sourcemap-"
  1840. version
  1841. ".tar.gz"))
  1842. (sha256
  1843. (base32
  1844. "0kz8xpcd5syg5s4qa2qq8ylaxjhabj127w42may46vv6i0q1bf8a"))))
  1845. (build-system haskell-build-system)
  1846. (inputs
  1847. (list ghc-aeson ghc-unordered-containers ghc-attoparsec
  1848. ghc-utf8-string))
  1849. (arguments
  1850. `(#:tests? #f ; FIXME: Fail to compile
  1851. #:cabal-revision
  1852. ("1" "1f7q44ar6qfip8fsllg43jyn7r15ifn2r0vz32cbmx0sb0d38dax")))
  1853. (home-page
  1854. "http://hackage.haskell.org/package/sourcemap")
  1855. (synopsis
  1856. "Implementation of source maps as proposed by Google and Mozilla")
  1857. (description
  1858. "Sourcemap provides an implementation of source maps, revision 3,
  1859. proposed by Google and Mozilla here
  1860. @url{https://wiki.mozilla.org/DevTools/Features/SourceMap}.")
  1861. (license license:bsd-3)))
  1862. (define-public ghc-language-javascript
  1863. (package
  1864. (name "ghc-language-javascript")
  1865. (version "0.7.1.0")
  1866. (source
  1867. (origin
  1868. (method url-fetch)
  1869. (uri (string-append
  1870. "https://hackage.haskell.org/package/language-javascript/language-javascript-"
  1871. version
  1872. ".tar.gz"))
  1873. (sha256
  1874. (base32
  1875. "0s6igb54cxm2jywgc3sq53f52gcsc39wd3g78yisfzvl9jm3d86i"))))
  1876. (build-system haskell-build-system)
  1877. (inputs
  1878. (list ghc-blaze-builder ghc-utf8-string))
  1879. (native-inputs
  1880. (list ghc-alex ghc-quickcheck ghc-happy ghc-hspec ghc-utf8-light))
  1881. (home-page
  1882. "https://github.com/erikd/language-javascript")
  1883. (synopsis "Parser for JavaScript")
  1884. (description
  1885. "Parses Javascript into an Abstract Syntax Tree (AST). Initially intended
  1886. as frontend to hjsmin.")
  1887. (license license:bsd-3)))
  1888. (define-public ghc-bower-json
  1889. (package
  1890. (name "ghc-bower-json")
  1891. (version "1.0.0.1")
  1892. (source
  1893. (origin
  1894. (method url-fetch)
  1895. (uri (string-append
  1896. "mirror://hackage/package/bower-json/bower-json-"
  1897. version
  1898. ".tar.gz"))
  1899. (sha256
  1900. (base32
  1901. "0wvygg3rdbxzrmr61a9w6ddv9pfric85ih8hnxyk0ydzn7i59abs"))))
  1902. (build-system haskell-build-system)
  1903. (inputs
  1904. (list ghc-aeson ghc-aeson-better-errors ghc-scientific
  1905. ghc-transformers ghc-unordered-containers))
  1906. (native-inputs
  1907. (list ghc-tasty ghc-tasty-hunit))
  1908. (home-page "https://github.com/hdgarrood/bower-json")
  1909. (synopsis "Read bower.json from Haskell")
  1910. (description
  1911. "This package provides a data type and ToJSON/FromJSON instances for
  1912. Bower's package manifest file, bower.json.")
  1913. (license license:expat)))
  1914. (define-public ghc-dav
  1915. (package
  1916. (name "ghc-dav")
  1917. (version "1.3.4")
  1918. (source
  1919. (origin
  1920. (method url-fetch)
  1921. (uri (string-append "https://hackage.haskell.org/package/DAV/DAV-"
  1922. version ".tar.gz"))
  1923. (sha256
  1924. (base32 "1isvi4fahq70lzxfz23as7qzkc01g7kba568l6flrgd0j1984fsy"))))
  1925. (build-system haskell-build-system)
  1926. (inputs
  1927. (list ghc-case-insensitive
  1928. ghc-data-default
  1929. ghc-exceptions
  1930. ghc-http-client
  1931. ghc-http-client-tls
  1932. ghc-http-types
  1933. ghc-lens
  1934. ghc-transformers-base
  1935. ghc-transformers-compat
  1936. ghc-utf8-string
  1937. ghc-xml-conduit
  1938. ghc-xml-hamlet
  1939. ghc-network
  1940. ghc-network-uri
  1941. ghc-optparse-applicative))
  1942. (home-page "http://floss.scru.org/hDAV")
  1943. (synopsis "RFC 4918 WebDAV support")
  1944. (description "This package provides a library for the Web Distributed
  1945. Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
  1946. @command{hdav}, for command-line operation.")
  1947. (license license:gpl3)))
  1948. (define-public ghc-yesod-test
  1949. (package
  1950. (name "ghc-yesod-test")
  1951. (version "1.6.12")
  1952. (source
  1953. (origin
  1954. (method url-fetch)
  1955. (uri (string-append "https://hackage.haskell.org/package/"
  1956. "yesod-test/yesod-test-" version ".tar.gz"))
  1957. (sha256
  1958. (base32
  1959. "1xgy7dzhqjgllqcpyyxs0spdg6vlz2c1sjvni7w7qnsf0ckyw2l8"))))
  1960. (build-system haskell-build-system)
  1961. (inputs
  1962. (list ghc-hunit
  1963. ghc-aeson
  1964. ghc-attoparsec
  1965. ghc-blaze-builder
  1966. ghc-blaze-html
  1967. ghc-case-insensitive
  1968. ghc-conduit
  1969. ghc-cookie
  1970. ghc-hspec-core
  1971. ghc-html-conduit
  1972. ghc-http-types
  1973. ghc-network
  1974. ghc-memory
  1975. ghc-pretty-show
  1976. ghc-semigroups
  1977. ghc-wai
  1978. ghc-wai-extra
  1979. ghc-xml-conduit
  1980. ghc-xml-types
  1981. ghc-yesod-core))
  1982. (native-inputs
  1983. (list ghc-hspec ghc-yesod-form ghc-unliftio ghc-unliftio-core))
  1984. (home-page "https://www.yesodweb.com")
  1985. (synopsis "Integration testing for WAI/Yesod Applications")
  1986. (description "This package's main goal is to encourage integration
  1987. and system testing of web applications by making everything easy to
  1988. test. Tests are like browser sessions that keep track of cookies and
  1989. the last visited page. You can perform assertions on the content of
  1990. HTML responses using CSS selectors.")
  1991. (license license:expat)))
  1992. (define-public ghc-wai-app-static
  1993. (package
  1994. (name "ghc-wai-app-static")
  1995. (version "3.1.7.2")
  1996. (source
  1997. (origin
  1998. (method url-fetch)
  1999. (uri (string-append "https://hackage.haskell.org/package/"
  2000. "wai-app-static/wai-app-static-"
  2001. version ".tar.gz"))
  2002. (sha256
  2003. (base32
  2004. "138gd5482psq0wbm8s1az672lksi7vbavq6ayiyjkliivf6xpry8"))))
  2005. (build-system haskell-build-system)
  2006. (inputs
  2007. (list ghc-wai
  2008. ghc-http-types
  2009. ghc-unix-compat
  2010. ghc-old-locale
  2011. ghc-file-embed
  2012. ghc-cryptonite
  2013. ghc-memory
  2014. ghc-http-date
  2015. ghc-blaze-html
  2016. ghc-blaze-markup
  2017. ghc-mime-types
  2018. ghc-unordered-containers
  2019. ghc-zlib
  2020. ghc-wai-extra
  2021. ghc-optparse-applicative
  2022. ghc-warp))
  2023. (native-inputs
  2024. (list ghc-hspec ghc-network ghc-temporary ghc-mockery))
  2025. (arguments
  2026. `(#:cabal-revision
  2027. ("1" "1q7zwjasysgbp9rdp75535igd7s6mhi2bnl4pzsn6vbyfw3qnsxd")))
  2028. (home-page "https://www.yesodweb.com/book/web-application-interface")
  2029. (synopsis "WAI application for static serving")
  2030. (description "This package provides a Web Application
  2031. Interface (WAI) application for static serving. It also provides some
  2032. helper functions and datatypes for use outside of WAI.")
  2033. (license license:expat)))
  2034. (define-public ghc-hjsmin
  2035. (package
  2036. (name "ghc-hjsmin")
  2037. (version "0.2.0.4")
  2038. (source
  2039. (origin
  2040. (method url-fetch)
  2041. (uri (string-append "https://hackage.haskell.org/package/"
  2042. "hjsmin/hjsmin-" version ".tar.gz"))
  2043. (sha256
  2044. (base32
  2045. "1r2p5rjdjr25j3w4s57q5hxw2c3ymw12x7ms18yvglnq2ivr9fc1"))))
  2046. (build-system haskell-build-system)
  2047. (arguments
  2048. `(#:phases
  2049. (modify-phases %standard-phases
  2050. (add-before 'build 'fix-dist-directory-for-tests
  2051. (lambda _
  2052. (substitute* '("test/test-cli.hs" "test/cli/core/runner")
  2053. (("dist-newstyle") "dist")))))))
  2054. (inputs
  2055. (list ghc-language-javascript ghc-optparse-applicative))
  2056. (native-inputs
  2057. (list ghc-extra))
  2058. (home-page "https://github.com/erikd/hjsmin")
  2059. (synopsis "Haskell implementation of a JavaScript minifier")
  2060. (description "This library provides tools reduce the size of
  2061. JavaScript files by stripping out extraneous whitespace and other
  2062. syntactic elements, without changing the semantics.")
  2063. (license license:bsd-3)))
  2064. (define-public ghc-yesod-static
  2065. (package
  2066. (name "ghc-yesod-static")
  2067. (version "1.6.1.0")
  2068. (source
  2069. (origin
  2070. (method url-fetch)
  2071. (uri (string-append "https://hackage.haskell.org/package/"
  2072. "yesod-static/yesod-static-" version ".tar.gz"))
  2073. (sha256
  2074. (base32
  2075. "18f5hm9ncvkzl8bkn39cg841z0k5iqs5w45afsyk9y6k98pjd54p"))))
  2076. (build-system haskell-build-system)
  2077. (inputs
  2078. (list ghc-async
  2079. ghc-attoparsec
  2080. ghc-base64-bytestring
  2081. ghc-blaze-builder
  2082. ghc-conduit
  2083. ghc-cryptonite
  2084. ghc-cryptonite-conduit
  2085. ghc-css-text
  2086. ghc-data-default
  2087. ghc-file-embed
  2088. ghc-hashable
  2089. ghc-hjsmin
  2090. ghc-http-types
  2091. ghc-memory
  2092. ghc-mime-types
  2093. ghc-unix-compat
  2094. ghc-unordered-containers
  2095. ghc-wai
  2096. ghc-wai-app-static
  2097. ghc-yesod-core))
  2098. (native-inputs
  2099. (list ghc-hspec ghc-yesod-test ghc-wai-extra ghc-hunit ghc-rio))
  2100. (home-page "https://www.yesodweb.com/")
  2101. (synopsis "Static file serving subsite for Yesod")
  2102. (description "This package provides a static file serving subsite
  2103. for the Yesod Web Framework.")
  2104. (license license:expat)))
  2105. (define-public ghc-wai-handler-launch
  2106. (package
  2107. (name "ghc-wai-handler-launch")
  2108. (version "3.0.3.1")
  2109. (source
  2110. (origin
  2111. (method url-fetch)
  2112. (uri (string-append "https://hackage.haskell.org/package/"
  2113. "wai-handler-launch/wai-handler-launch-"
  2114. version ".tar.gz"))
  2115. (sha256
  2116. (base32
  2117. "1ifqgyc1ccig5angh5l1iq7vyms4lvi8wzvysg5dw82nml49n02m"))))
  2118. (build-system haskell-build-system)
  2119. (inputs
  2120. (list ghc-wai ghc-warp ghc-http-types ghc-streaming-commons
  2121. ghc-async))
  2122. (home-page "https://hackage.haskell.org/package/wai-handler-launch")
  2123. (synopsis "Launch a Web application in the default browser")
  2124. (description "This package handles cross-platform Web browser
  2125. launching and inserts JavaScript code to ping the server. When the
  2126. server no longer receives pings, it shuts down.")
  2127. (license license:expat)))
  2128. (define-public ghc-wai-cors
  2129. (package
  2130. (name "ghc-wai-cors")
  2131. (version "0.2.7")
  2132. (source
  2133. (origin
  2134. (method url-fetch)
  2135. (uri (string-append "https://hackage.haskell.org/package/"
  2136. "wai-cors/wai-cors-" version ".tar.gz"))
  2137. (sha256
  2138. (base32
  2139. "10gv3jjlkcb13031frr818p56v2s0qf6dqjsfpwlhwdxdssvx5r5"))))
  2140. (build-system haskell-build-system)
  2141. (arguments
  2142. `(#:phases
  2143. (modify-phases %standard-phases
  2144. ;; As of version 0.2.7, there are two test suites: "unit-tests"
  2145. ;; and "phantomjs". Since we do not have a PhantomJS package,
  2146. ;; we only run the unit tests.
  2147. (replace 'check
  2148. (lambda _
  2149. (invoke "runhaskell" "Setup.hs" "test" "unit-tests"))))))
  2150. (inputs
  2151. (list ghc-attoparsec ghc-base-unicode-symbols ghc-case-insensitive
  2152. ghc-http-types ghc-wai))
  2153. (native-inputs
  2154. (list ghc-network
  2155. ghc-wai-websockets
  2156. ghc-warp
  2157. ghc-websockets
  2158. ghc-tasty
  2159. ghc-tasty-hunit
  2160. ghc-wai-extra
  2161. ghc-wai-websockets
  2162. ghc-warp
  2163. ghc-websockets))
  2164. (home-page "https://github.com/larskuhtz/wai-cors")
  2165. (synopsis "Cross-Origin Resource Sharing (CORS) for WAI")
  2166. (description "This package provides an implementation of Cross-Origin
  2167. Resource Sharing (CORS) for the Web Application Framework (WAI) that
  2168. aims to be compliant with @url{https://www.w3.org/TR/cors}.")
  2169. (license license:expat)))
  2170. (define-public ghc-network-run
  2171. (package
  2172. (name "ghc-network-run")
  2173. (version "0.2.4")
  2174. (source
  2175. (origin
  2176. (method url-fetch)
  2177. (uri (string-append
  2178. "https://hackage.haskell.org/package/network-run/network-run-"
  2179. version
  2180. ".tar.gz"))
  2181. (sha256
  2182. (base32 "0w3dmwk03j4n01xkiq8m4sqa27bskh239mpw7m4ihjmkxqcwc5gl"))))
  2183. (build-system haskell-build-system)
  2184. (inputs (list ghc-network))
  2185. (home-page "https://hackage.haskell.org/package/network-run")
  2186. (synopsis "Simple network runner library")
  2187. (description
  2188. "This package provides a simple network runner library in Haskell.")
  2189. (license license:bsd-3)))