projects/guix·blob librewolf-updates · refs

880 lines · 30.0 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2025 Giacomo Leidi <[email protected]>
3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu packages elixir-web)
20 #:use-module (gnu packages)
21 #:use-module (gnu packages erlang)
22 #:use-module (gnu packages erlang-xyz)
23 #:use-module (gnu packages elixir-databases)
24 #:use-module (gnu packages elixir-i18n)
25 #:use-module (gnu packages elixir-markup)
26 #:use-module (gnu packages elixir-xyz)
27 #:use-module (guix build-system mix)
28 #:use-module (guix download)
29 #:use-module (guix git-download)
30 #:use-module (guix gexp)
31 #:use-module ((guix licenses)
32 #:prefix license:)
33 #:use-module (guix packages))
34
35(define-public elixir-bandit
36 (package
37 (name "elixir-bandit")
38 (version "1.8.0")
39 (source
40 (origin
41 (method url-fetch)
42 (uri (hexpm-uri "bandit" version))
43 (sha256
44 (base32 "08jll47yxkj4n08nh7xm8bm36z077a458j4xlqp2mzr0xm7gyn44"))))
45 (build-system mix-build-system)
46 (arguments
47 ;; Tests depend on elixir-req which is not yet packaged.
48 (list #:tests? #f))
49 (propagated-inputs
50 (list elixir-hpax
51 elixir-plug
52 erlang-telemetry
53 elixir-thousand-island
54 elixir-websock))
55 (synopsis "HTTP server built for Plug & WebSock apps")
56 (description
57 "This package provides a pure-Elixir HTTP server built for Plug & @code{WebSock}
58apps.")
59 (home-page "https://hexdocs.pm/bandit/")
60 (license license:expat)))
61
62(define-public elixir-con-cache
63 (package
64 (name "elixir-con-cache")
65 (version "1.1.1")
66 (source
67 (origin
68 (method url-fetch)
69 (uri (hexpm-uri "con_cache" version))
70 (sha256
71 (base32 "05dfx20f6sncxcpmld7s3gc4jmibkyhn1g2vbg3n8r99xhdlvvqx"))))
72 (build-system mix-build-system)
73 (propagated-inputs (list erlang-telemetry))
74 (synopsis
75 "ETS based key-value storage")
76 (description
77 "This package provides @code{con_cache}, an ETS based key-value storage
78with support for row-level isolated writes, TTL auto-purge, and modification
79callbacks.")
80 (home-page "https://hexdocs.pm/con_cache/")
81 (license license:expat)))
82
83;; This package lives here to avoid module level circular dependencies as it
84;; depends on elixir-plug.
85(define-public elixir-ecto-shorts
86 (package
87 (name "elixir-ecto-shorts")
88 (version "2.4.0")
89 (source
90 (origin
91 (method url-fetch)
92 (uri (hexpm-uri "ecto_shorts" version))
93 (sha256
94 (base32 "1r7cc0dhhvmqnwicrnay9lsaf2xahr919g993rbbakdca2xw0q3l"))))
95 (build-system mix-build-system)
96 (native-inputs (list elixir-credo elixir-excoveralls))
97 (propagated-inputs (list elixir-ecto-sql elixir-error-message))
98 (synopsis
99 "Helper tools for making ecto interactions shorter")
100 (description
101 "Helper tools for making ecto interactions more pleasant and shorter.")
102 (home-page "https://hexdocs.pm/ecto_shorts/")
103 (license license:expat)))
104
105(define-public elixir-emote
106 (package
107 (name "elixir-emote")
108 (version "0.1.1")
109 (source
110 (origin
111 (method url-fetch)
112 (uri (hexpm-uri "emote" version))
113 (sha256
114 (base32 "1km0hkvjpswxrvadrz4wjarpnv6wz3p15bdmmlw0yswnfvmij4ni"))))
115 (build-system mix-build-system)
116 (propagated-inputs (list elixir-phoenix-html))
117 (synopsis
118 "Convert emoticons and emoji names to emoji characters or images")
119 (description
120 "This package provides @code{elixir-emote}, a small library for
121converting emoticons and emoji names to emoji characters or images,
122including custom emoji.")
123 (home-page "https://hexdocs.pm/emote/")
124 (license license:wtfpl2)))
125
126;; This package lives here to avoid module level circular dependencies as it
127;; depends on elixir-plug.
128(define-public elixir-error-message
129 (package
130 (name "elixir-error-message")
131 (version "0.3.3")
132 (source
133 (origin
134 (method url-fetch)
135 (uri (hexpm-uri "error_message" version))
136 (sha256
137 (base32 "0wsbcwby3grnb5s6558s2x5wrhy8f7vwbbfdk88rsacbf1w0l6k7"))))
138 (build-system mix-build-system)
139 (native-inputs (list elixir-excoveralls))
140 (propagated-inputs (list elixir-jason elixir-plug))
141 (synopsis "Make errors consistent across your system")
142 (description
143 "Error system to help make errors consistent across your system.")
144 (home-page "https://hexdocs.pm/error_message/")
145 (license license:expat)))
146
147;; This package lives here to avoid module level circular dependencies as it
148;; depends on elixir-mint.
149(define-public elixir-ex-cldr-dates-times
150 (package
151 (name "elixir-ex-cldr-dates-times")
152 (version "2.24.0")
153 (source
154 (origin
155 (method url-fetch)
156 (uri (hexpm-uri "ex_cldr_dates_times" version))
157 (sha256
158 (base32 "00zzwr07x8i8dvhqi2vxpa858s874l941h2m41x9ip2k96dgc3nk"))))
159 (build-system mix-build-system)
160 (propagated-inputs
161 (list elixir-calendar-interval
162 elixir-ex-cldr
163 elixir-ex-cldr-calendars
164 elixir-ex-cldr-units
165 elixir-jason
166 elixir-tz))
167 (synopsis
168 "Date, Time and DateTime localization, internationalization and formatting")
169 (description
170 "Date, Time and @code{DateTime} localization, internationalization and formatting
171functions using the Common Locale Data Repository (CLDR).")
172 (home-page "https://hexdocs.pm/ex_cldr_dates_times/")
173 (license license:asl2.0)))
174
175(define-public elixir-ex-cldr-plugs
176 (package
177 (name "elixir-ex-cldr-plugs")
178 (version "1.3.4")
179 (source
180 (origin
181 (method url-fetch)
182 (uri (hexpm-uri "ex_cldr_plugs" version))
183 (sha256
184 (base32 "0apm3x98abjnlhzb59p3qnhh2pmzrbk8gh0x209k0h5cgq4rx0ih"))))
185 (build-system mix-build-system)
186 (propagated-inputs (list elixir-ex-cldr elixir-gettext elixir-jason elixir-plug))
187 (synopsis
188 "Plugs supporting CLDR")
189 (description
190 "Plugs supporting CLDR and setting the locale from requests and request headers.")
191 (home-page "https://hexdocs.pm/ex_cldr_plugs/")
192 (license license:asl2.0)))
193
194(define-public elixir-exjsx
195 (package
196 (name "elixir-exjsx")
197 (version "4.0.0")
198 (source
199 (origin
200 (method url-fetch)
201 (uri (hexpm-uri "exjsx" version))
202 (sha256
203 (base32 "01rfr1har8akbwwnsba4a248hfym5955348fhdkymzvwm4h5is9j"))))
204 (build-system mix-build-system)
205 (propagated-inputs (list erlang-jsx))
206 (synopsis "JSON for Elixir")
207 (description "This package provides @code{exjsx}, a JSON library for
208Elixir.")
209 (home-page "https://hexdocs.pm/exjsx/")
210 (license license:expat)))
211
212(define-public elixir-hpack
213 (package
214 (name "elixir-hpack")
215 (version "3.0.1")
216 (source
217 (origin
218 (method url-fetch)
219 (uri (hexpm-uri "hpack" version))
220 (sha256
221 (base32 "1gh4p21mlnnbprh7fxk03i53lmbdqsgi0my3r9sv9ivl9i6nm0rq"))))
222 (build-system mix-build-system)
223 (synopsis
224 "Implementation of the
225@uref{https://http2.github.io/http2-spec/compression.html,HPack} protocol")
226 (description
227 "This package provides @code{elixir-hpack}, an implementation of the
228@uref{https://http2.github.io/http2-spec/compression.html,HPack} protocol: a
229compression format for efficiently representing HTTP header fields, to be used
230in HTTP/2.")
231 (home-page "https://hexdocs.pm/hpack/")
232 (license license:expat)))
233
234(define-public elixir-hpax
235 (package
236 (name "elixir-hpax")
237 (version "1.0.3")
238 (source
239 (origin
240 (method url-fetch)
241 (uri (hexpm-uri "hpax" version))
242 (sha256
243 (base32 "0jpkgn2abg0pr1anw7p9v3dkbbwlx243b92brv11hncdz8f6xawf"))))
244 (build-system mix-build-system)
245 (native-inputs
246 (list erlang-coveralls
247 elixir-excoveralls))
248 (propagated-inputs
249 (list elixir-castore
250 elixir-hpack
251 elixir-stream-data))
252 (synopsis "Implementation of the HPACK protocol (RFC 7541) for Elixir")
253 (description "This package provides @code{elixir-hpax}, an implementation of
254the HPACK protocol (RFC 7541) for Elixir.")
255 (home-page "https://hexdocs.pm/hpax/")
256 (license license:asl2.0)))
257
258(define-public elixir-httparrot
259 (package
260 (name "elixir-httparrot")
261 (version "1.4.0")
262 (source
263 (origin
264 (method git-fetch)
265 (uri (git-reference
266 (url "https://github.com/edgurgel/httparrot.git")
267 (commit (string-append "v" version))))
268 (file-name (git-file-name name version))
269 (sha256
270 (base32 "0grbqr41c6lf34k8q69v5ki6mlxwwkvgpjv5l7gmwfb8jmwbn6p7"))))
271 (build-system mix-build-system)
272 (native-inputs
273 (list elixir-earmark erlang-meck))
274 (propagated-inputs
275 (list elixir-con-cache erlang-cowboy elixir-exjsx))
276 (synopsis "HTTP Request & Response Server")
277 (description "HTTP server built on top of Cowboy using (mostly)
278@code{cowboy_rest} handlers to serve useful endpoints for testing
279purposes. Its goal is to be as close as possible to
280@uref{http://httpbin.org, HTTPBin}.")
281 (home-page "https://hexdocs.pm/httparrot/")
282 (license license:expat)))
283
284(define-public elixir-httpoison
285 (package
286 (name "elixir-httpoison")
287 (version "2.2.3")
288 (source
289 (origin
290 (method git-fetch)
291 (uri (git-reference
292 (url "https://github.com/edgurgel/httpoison")
293 (commit (string-append "v" version))))
294 (file-name (git-file-name name version))
295 (sha256
296 (base32 "0k9g4dc6y30wr9ryxjs23izifpg4dqkkqk8xz39ff27jn5s97k8i"))
297 ;; Waiting for upstream inclusion at
298 ;; https://github.com/edgurgel/httpoison/pull/502
299 (patches
300 (search-patches "elixir-httpoison-tag-network-dependent-test-cases.patch"))))
301 (build-system mix-build-system)
302 (arguments
303 (list
304 #:test-flags
305 ;; These tests require network access to badssl.com.
306 #~(list "--exclude" "network")))
307 (native-inputs
308 (list erlang-cowboy
309 elixir-earmark
310 elixir-jason
311 elixir-httparrot
312 elixir-mimic))
313 (propagated-inputs (list erlang-hackney))
314 (synopsis "Yet Another HTTP client for Elixir")
315 (description "Yet Another HTTP client for Elixir powered by hackney.")
316 (home-page "https://hexdocs.pm/httpoison/")
317 (license license:expat)))
318
319(define-public elixir-iconify-ex
320 (package
321 (name "elixir-iconify-ex")
322 (version "0.6.1")
323 (source
324 (origin
325 (method url-fetch)
326 (uri (hexpm-uri "iconify_ex" version))
327 (sha256
328 (base32 "1j6vzp6ayx278s6q7n4rdk849b23sx9wf040h336naxphqxm3qk6"))))
329 (build-system mix-build-system)
330 (propagated-inputs
331 (list elixir-arrows
332 elixir-emote
333 elixir-floki
334 elixir-jason
335 elixir-phoenix-live-favicon
336 elixir-phoenix-live-view
337 elixir-recase
338 elixir-surface
339 elixir-untangle))
340 (synopsis
341 "Phoenix helpers for using icon sets")
342 (description
343 "This package provides Phoenix helpers for using the 100,000+ SVG icons
344from 100+ icon sets from @uref{https://iconify.design, iconify.design}.")
345 (home-page "https://hexdocs.pm/iconify_ex/")
346 (license license:expat)))
347
348(define-public elixir-mint-web-socket
349 (package
350 (name "elixir-mint-web-socket")
351 (version "1.0.4")
352 (source
353 (origin
354 (method url-fetch)
355 (uri (hexpm-uri "mint_web_socket" version))
356 (sha256
357 (base32 "14d9c2ryqggl2p54bh0rhm3ab17j6l7ir817rsh4nnn455alqz82"))))
358 (build-system mix-build-system)
359 (arguments
360 ;; Tests depend on gun from hex.pm which is not packaged yet.
361 (list #:tests? #f))
362 (native-inputs (list elixir-jason erlang-cowboy))
363 (propagated-inputs (list elixir-mint))
364 (synopsis "WebSocket support for Mint")
365 (description "HTTP/1 and HTTP/2 @code{WebSocket} support for Mint.")
366 (home-page "https://hexdocs.pm/mint_web_socket/")
367 (license license:asl2.0)))
368
369(define-public elixir-mint
370 (package
371 (name "elixir-mint")
372 (version "1.7.1")
373 (source
374 (origin
375 (method url-fetch)
376 (uri (hexpm-uri "mint" version))
377 (sha256
378 (base32 "06r3kb9vkzpx8lgp6fjngaxz9hzidl8sw91hxvfh2hzjs2ja1szw"))))
379 (build-system mix-build-system)
380 (arguments
381 ;; Tests depend on elixir-mox which is not packaged yet.
382 (list #:tests? #f))
383 (native-inputs
384 (list elixir-excoveralls))
385 (propagated-inputs (list elixir-castore elixir-hpax))
386 (synopsis "Functional HTTP client for Elixir with support for HTTP/1 and
387HTTP/2")
388 (description "Mint is different from most Erlang and Elixir HTTP clients
389because it provides a process-less architecture. Instead, Mint is based on a
390functional and immutable data structure that represents an HTTP connection.
391
392This data structure wraps a TCP or SSL socket. This allows for more
393fine-tailored architectures where the developer is responsible for wrapping the
394connection struct, such as having one process handle multiple connections or
395having different kinds of processes handle connections.")
396 (home-page "https://hexdocs.pm/mint/")
397 (license license:asl2.0)))
398
399(define-public elixir-neuron
400 (package
401 (name "elixir-neuron")
402 (version "5.1.0")
403 (source
404 (origin
405 (method url-fetch)
406 (uri (hexpm-uri "neuron" version))
407 (sha256
408 (base32 "1kmnhlihpv1075i3f5izysx2vdgqw71lnnxw8yifxh6r1l7dpk93"))))
409 (build-system mix-build-system)
410 (arguments
411 ;; Tests depend on Coverex, which is not packaged yet.
412 (list #:tests? #f))
413 (propagated-inputs (list elixir-httpoison elixir-jason))
414 (synopsis "GraphQL client for Elixir")
415 (description "This package provides a @code{GraphQL} client for Elixir.")
416 (home-page "https://hexdocs.pm/neuron/")
417 (license license:isc)))
418
419(define-public elixir-phoenix-ecto
420 (package
421 (name "elixir-phoenix-ecto")
422 (version "4.6.5")
423 (source
424 (origin
425 (method url-fetch)
426 (uri (hexpm-uri "phoenix_ecto" version))
427 (sha256
428 (base32 "0jwdybzrsbrxjqsqw5pzzf2x8vsw0i2d1bccfhdz61zlxq435v16"))))
429 (build-system mix-build-system)
430 (propagated-inputs
431 (list elixir-ecto
432 elixir-phoenix-html
433 elixir-plug
434 elixir-postgrex))
435 (synopsis "Phoenix and Ecto integration with support for concurrent
436acceptance testing")
437 (description "This package provides a library that integrates Phoenix with
438Ecto, implementing all relevant protocols.")
439 (home-page "https://hexdocs.pm/phoenix_ecto/")
440 (license license:expat)))
441
442(define-public elixir-phoenix-html
443 (package
444 (name "elixir-phoenix-html")
445 (version "4.3.0")
446 (source
447 (origin
448 (method url-fetch)
449 (uri (hexpm-uri "phoenix_html" version))
450 (sha256
451 (base32 "1bcp0kri8fh6ygs6js3ppja9sxmy3fc6m94iyxsz1c5sg052kaiy"))))
452 (build-system mix-build-system)
453 (synopsis "Phoenix view functions for working with HTML templates")
454 (description "This package provides @code{elixir-phoenix-html}, a library
455implementing view functions for working with HTML templates in the Phoenix
456framework.")
457 (home-page "https://hexdocs.pm/phoenix_html/")
458 (license license:expat)))
459
460(define-public elixir-phoenix-live-favicon
461 (package
462 (name "elixir-phoenix-live-favicon")
463 (version "1.0.0")
464 (source
465 (origin
466 (method url-fetch)
467 (uri (hexpm-uri "phoenix_live_favicon" version))
468 (sha256
469 (base32 "1wakzjn4z0skmmymywng2n5jqcfbfccawzcd03a5gcyy3m215h7w"))))
470 (build-system mix-build-system)
471 (arguments
472 ;; Tests depend on makeup_diff from hex.pm but it is not packaged yet.
473 (list #:tests? #f))
474 (propagated-inputs (list elixir-phoenix-live-head))
475 (synopsis "Favicon manipulation for Phoenix Live Views")
476 (description "This package provides a lib enabling dynamic favicons in
477Phoenix Live View applications.")
478 (home-page "https://hexdocs.pm/phoenix_live_favicon/")
479 (license license:expat)))
480
481(define-public elixir-phoenix-live-head
482 (package
483 (name "elixir-phoenix-live-head")
484 (version "1.0.0")
485 (source
486 (origin
487 (method url-fetch)
488 (uri (hexpm-uri "phoenix_live_head" version))
489 (sha256
490 (base32 "12z1rjizkj4337cc0p1mvjq7n0jgd0v9gd8p8bw10vsi5ykbdlai"))))
491 (build-system mix-build-system)
492 (native-inputs
493 (list elixir-excoveralls))
494 (propagated-inputs
495 (list elixir-ex-doc elixir-jason elixir-phoenix
496 elixir-phoenix-html elixir-phoenix-live-view))
497 (synopsis "HTML Head manipulation for Phoenix Live Views")
498 (description "This package provides commands for manipulating the HTML Head
499of Phoenix Live View applications while minimizing data over the wire.
500
501The available command actions support a variety of utility operations useful for
502HTML Head manipulation. Such as setting or removing tag attributes and adding
503or removing CSS classes.
504
505A special feature is the use of the @code{@{dynamic@}} tag in values. This
506saves data over the wire by only sending the dynamic part of an attributes
507value.")
508 (home-page "https://hexdocs.pm/phoenix_live_head/")
509 (license license:expat)))
510
511(define-public elixir-phoenix-live-reload
512 (package
513 (name "elixir-phoenix-live-reload")
514 (version "1.6.1")
515 (source
516 (origin
517 (method url-fetch)
518 (uri (hexpm-uri "phoenix_live_reload" version))
519 (sha256
520 (base32 "1875i11fl7nr1hx645cjwq43ziiy7vrrjxf1pgqgxr56sm1kh9vl"))))
521 (build-system mix-build-system)
522 (arguments
523 ;; Tests fail with:
524 ;;
525 ;; [warning] Could not start Phoenix live-reload because we cannot listen
526 ;; to the file system.
527 ;; You don't need to worry! This is an optional feature used during
528 ;; development to refresh your browser when you save files and it does not
529 ;; affect production.
530 (list #:tests? #f))
531 (propagated-inputs (list elixir-file-system elixir-phoenix))
532 (synopsis "Live-reload functionality for Phoenix")
533 (description
534 "This package provides live-reload functionality for Phoenix.")
535 (home-page "https://hexdocs.pm/phoenix_live_reload/")
536 (license license:expat)))
537
538(define-public elixir-phoenix-live-view
539 (package
540 (name "elixir-phoenix-live-view")
541 (version "1.1.13")
542 (source
543 (origin
544 (method url-fetch)
545 (uri (hexpm-uri "phoenix_live_view" version))
546 (sha256
547 (base32 "1v7p6q0lz9fzfyj9w4kwbyqi1vqdzsdllaw3xvw9whdqfcsyj1lx"))))
548 (build-system mix-build-system)
549 (arguments
550 ;; Tests fail with:
551 ;;
552 ;; [warning] Could not start Phoenix live-reload because we cannot listen
553 ;; to the file system.
554 ;; You don't need to worry! This is an optional feature used during
555 ;; development to refresh your browser when you save files and it does not
556 ;; affect production.
557 (list #:tests? #f))
558 (native-inputs
559 (list elixir-html-entities
560 elixir-phoenix-live-reload))
561 (propagated-inputs
562 (list elixir-floki
563 elixir-jason
564 elixir-phoenix
565 elixir-phoenix-html
566 elixir-phoenix-template
567 elixir-phoenix-view
568 elixir-plug
569 erlang-telemetry))
570 (synopsis "Rich, real-time user experiences with server-rendered HTML")
571 (description "LiveView brings a unified experience to building web
572applications. You no longer have to split work between client and server,
573across different toolings, layers, and abstractions. Instead, LiveView
574enriches the server with a declarative and powerful model while keeping your
575code closer to your data (and ultimately your source of truth):
576
577@itemize
578@item Declarative server side rendering
579@item Rich templating language
580@item Diffs over the wire
581@item Live form validation
582@item File uploads with progress indicators
583@item Optimistic updates and transitions
584@item Live navigation
585@item Latency simulator
586@end itemize")
587 (home-page "https://hexdocs.pm/phoenix_live_view/")
588 (license license:expat)))
589
590(define-public elixir-phoenix-pubsub
591 (package
592 (name "elixir-phoenix-pubsub")
593 (version "2.1.3")
594 (source
595 (origin
596 (method url-fetch)
597 (uri (hexpm-uri "phoenix_pubsub" version))
598 (sha256
599 (base32 "00p5dvizhawhqbia2cakdn4whaxsm2adq3lzfn3b137xvk0np85v"))))
600 (build-system mix-build-system)
601 (arguments
602 ;; Tests require network
603 (list #:tests? #f))
604 (synopsis "Distributed PubSub and Presence platform")
605 (description "This package provides @code{elixir-phoenix-pubsub}, a library
606implementing a distributed @code{PubSub} and @code{Presence} platform for the
607Phoenix Framework.")
608 (home-page "https://hexdocs.pm/phoenix_pubsub/")
609 (license license:expat)))
610
611(define-public elixir-phoenix-template
612 (package
613 (name "elixir-phoenix-template")
614 (version "1.0.4")
615 (source
616 (origin
617 (method url-fetch)
618 (uri (hexpm-uri "phoenix_template" version))
619 (sha256
620 (base32 "01j28jf0q1h5pk9ndf7s6jx9m489jyf24byabjpkyxf6wpq8231c"))))
621 (build-system mix-build-system)
622 (native-inputs (list elixir-jason))
623 (propagated-inputs (list elixir-phoenix-html))
624 (synopsis "Template rendering for Phoenix")
625 (description "This module provides functions for loading and compiling
626templates from disk. A markup language is compiled to Elixir code via an
627engine.")
628 (home-page "https://hexdocs.pm/phoenix_template/")
629 (license license:expat)))
630
631(define-public elixir-phoenix-view
632 (package
633 (name "elixir-phoenix-view")
634 (version "2.0.4")
635 (source
636 (origin
637 (method url-fetch)
638 (uri (hexpm-uri "phoenix_view" version))
639 (sha256
640 (base32 "02v2xd1h415kbf1ncclqx6acrbslh6i2gnrmfgjizwqlrqi216af"))))
641 (build-system mix-build-system)
642 (native-inputs
643 (list elixir-jason))
644 (propagated-inputs (list elixir-phoenix-html elixir-phoenix-template))
645 (synopsis "View layer in Phoenix v1.0-v1.6 apps")
646 (description "Within LiveView and HTML apps, @code{Phoenix.View} has fallen
647out of fashion in favor of @code{Phoenix.Component}. See the \"Replaced by
648@code{Phoenix.Component}\" section in the @code{Phoenix.View} module
649documentation for more information and migration steps.
650
651If you want to render other formats, such as XML, @code{Phoenix.View} may still
652be a useful addition to your projects.")
653 (home-page "https://hexdocs.pm/phoenix_view/")
654 (license license:expat)))
655
656(define-public elixir-phoenix
657 (package
658 (name "elixir-phoenix")
659 (version "1.8.1")
660 (source
661 (origin
662 (method url-fetch)
663 (uri (hexpm-uri "phoenix" version))
664 (sha256
665 (base32 "1cigrl8myx2079mns0ww2k6n11awxw0vv6bhabkwghvp5qmpvmw4"))))
666 (build-system mix-build-system)
667 (native-inputs
668 (list elixir-mint
669 elixir-mint-web-socket
670 elixir-phx-new))
671 (propagated-inputs
672 (list elixir-castore
673 elixir-jason
674 elixir-phoenix-pubsub
675 elixir-phoenix-html
676 elixir-phoenix-template
677 elixir-phoenix-view
678 elixir-plug
679 elixir-plug-cowboy
680 elixir-plug-crypto
681 erlang-telemetry
682 elixir-websock-adapter))
683 (synopsis "Web development framework")
684 (description "Phoenix is a web development framework written in Elixir
685which implements the server-side Model View Controller (MVC) pattern. Many of
686its components and concepts will seem familiar to those with experience in other
687web frameworks like Ruby on Rails or Python's Django.")
688 (home-page "https://www.phoenixframework.org/")
689 (license license:expat)))
690
691(define-public elixir-phx-new
692 (package
693 (name "elixir-phx-new")
694 (version "1.8.1")
695 (source
696 (origin
697 (method url-fetch)
698 (uri (hexpm-uri "phx_new" version))
699 (sha256
700 (base32 "05kv8i0w8f1ky6gx3rz0ps5mwp8nkln7dq6565zw660i3cxpnwzn"))))
701 (build-system mix-build-system)
702 (synopsis
703 "Phoenix framework project generator")
704 (description
705 "Phoenix framework project generator. Provides a @command{mix phx.new}
706task to bootstrap a new Elixir application with Phoenix dependencies.")
707 (home-page "https://hexdocs.pm/phx_new/")
708 (license license:expat)))
709
710(define-public elixir-plug-crypto
711 (package
712 (name "elixir-plug-crypto")
713 (version "2.1.1")
714 (source
715 (origin
716 (method url-fetch)
717 (uri (hexpm-uri "plug_crypto" version))
718 (sha256
719 (base32 "0z1424zcywdg47wsbvhmdbrngbz4lzhzsbv1jza8n774zzkbqw34"))))
720 (build-system mix-build-system)
721 (synopsis "Crypto-related functionality for the web")
722 (description "This package provides @code{elixir-plug-crypto}, a library
723implementing crypto-related functionality for the web, used by Plug.")
724 (home-page "https://hexdocs.pm/plug_crypto/")
725 (license license:asl2.0)))
726
727(define-public elixir-plug-cowboy
728 (package
729 (name "elixir-plug-cowboy")
730 (version "2.7.4")
731 (source
732 (origin
733 (method url-fetch)
734 (uri (hexpm-uri "plug_cowboy" version))
735 (sha256
736 (base32 "18wa2qiy18g9s61anb5krcmmvcmivs201mx5w2x1a9h1swmn71cv"))))
737 (build-system mix-build-system)
738 (arguments
739 (list
740 #:tests? #f))
741 (native-inputs
742 (list elixir-x509 erlang-hackney))
743 (propagated-inputs (list erlang-cowboy erlang-cowboy-telemetry elixir-plug))
744 (synopsis "A Plug adapter for Cowboy")
745 (description "This package provides a Plug adapter for Cowboy.")
746 (home-page "https://hexdocs.pm/plug_cowboy/")
747 (license license:asl2.0)))
748
749(define-public elixir-plug
750 (package
751 (name "elixir-plug")
752 (version "1.18.1")
753 (source
754 (origin
755 (method url-fetch)
756 (uri (hexpm-uri "plug" version))
757 (sha256
758 (base32 "1hkcahx1l6yi1hcxn7lw6cbcscwdrwrjsza3cjsj5d7j1nvpv9ap"))))
759 (build-system mix-build-system)
760 (propagated-inputs (list elixir-mime elixir-plug-crypto erlang-telemetry))
761 (synopsis "Compose web applications with functions")
762 (description "Plug is:
763
764@itemize
765@item A specification for composing web applications with functions
766@item Connection adapters for different web servers in the Erlang VM
767@end itemize
768
769In other words, Plug allows you to build web applications from small pieces and
770run them on different web servers. Plug is used by web frameworks such as
771Phoenix to manage requests, responses, and websockets. This documentation will
772show some high-level examples and introduce the Plug's main building blocks.")
773 (home-page "https://hexdocs.pm/plug/")
774 (license license:asl2.0)))
775
776(define-public elixir-surface
777 (package
778 (name "elixir-surface")
779 (version "0.12.1")
780 (source
781 (origin
782 (method url-fetch)
783 (uri (hexpm-uri "surface" version))
784 (sha256
785 (base32 "04yl1k13sd22iwlf90l46dd7a09x3wq0g1iq6caw9y9p4ljl4chk"))))
786 (build-system mix-build-system)
787 (native-inputs
788 (list elixir-ecto
789 elixir-floki
790 elixir-jason
791 elixir-phoenix-ecto
792 elixir-sourceror))
793 (propagated-inputs
794 (list elixir-phoenix-html
795 elixir-phoenix-live-view
796 elixir-sourceror))
797 (synopsis "Server-side rendering component library for Phoenix")
798 (description
799 "This package provides Surface is a server-side rendering component library
800that allows developers to build rich interactive user-interfaces, writing
801minimal custom JavaScript.")
802 (home-page "https://surface-ui.org")
803 (license license:expat)))
804
805;; This package lives here to avoid module level circular dependencies as it
806;; depends on elixir-mint.
807(define-public elixir-tz
808 (package
809 (name "elixir-tz")
810 (version "0.28.1")
811 (source
812 (origin
813 (method url-fetch)
814 (uri (hexpm-uri "tz" version))
815 (sha256
816 (base32 "12lchkhdxbv8ai09i2lsy394yx1xrfq1yz5p8dn3qr0236ma3p5z"))))
817 (build-system mix-build-system)
818 (propagated-inputs (list elixir-castore elixir-mint))
819 (synopsis "Time zone support for Elixir")
820 (description "Time zone support for Elixir.")
821 (home-page "https://hexdocs.pm/tz/")
822 (license license:asl2.0)))
823
824(define-public elixir-websock-adapter
825 (package
826 (name "elixir-websock-adapter")
827 (version "0.5.8")
828 (source
829 (origin
830 (method url-fetch)
831 (uri (hexpm-uri "websock_adapter" version))
832 (sha256
833 (base32 "10ip7zyvb5nb9qyl9vmw8npk3kk79qcssh2iyfsi48jmclc9lnri"))))
834 (build-system mix-build-system)
835 (propagated-inputs
836 (list elixir-bandit
837 elixir-plug
838 elixir-plug-cowboy
839 elixir-websock))
840 (synopsis "WebSock adapters for common web servers")
841 (description
842 "This package provides a set of @code{WebSock} adapters for common web servers.")
843 (home-page "https://hexdocs.pm/websock_adapter/")
844 (license license:expat)))
845
846(define-public elixir-websock
847 (package
848 (name "elixir-websock")
849 (version "0.5.3")
850 (source
851 (origin
852 (method url-fetch)
853 (uri (hexpm-uri "websock" version))
854 (sha256
855 (base32 "0lxlp1h18595nqczfg15iy34kw5xbbab3yk6ml9cf8mcgwyla1b1"))))
856 (build-system mix-build-system)
857 (synopsis "Specification for WebSocket connections")
858 (description
859 "This package provides a specification for @code{WebSocket} connections.")
860 (home-page "https://hexdocs.pm/websock/")
861 (license license:expat)))
862
863(define-public elixir-x509
864 (package
865 (name "elixir-x509")
866 (version "0.9.2")
867 (source
868 (origin
869 (method url-fetch)
870 (uri (hexpm-uri "x509" version))
871 (sha256
872 (base32 "1iyg91719bkxpps3l97aj2hd67xvf4xlrq2v1x5msmkyd5sxwpjc"))))
873 (build-system mix-build-system)
874 (synopsis
875 "Elixir package for working with X.509 certificates")
876 (description
877 "Elixir package for working with X.509 certificates, Certificate Signing Requests
878(CSRs), Certificate Revocation Lists (CRLs) and RSA/ECC key pairs.")
879 (home-page "https://hexdocs.pm/x509/")
880 (license license:bsd-3)))