diff options
Diffstat (limited to 'gnu/packages/golang-web.scm')
-rw-r--r-- | gnu/packages/golang-web.scm | 609 |
1 files changed, 567 insertions, 42 deletions
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index 91f075ca2e..85787d883f 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -1,7 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2019, 2021 Leo Famulari <leo@famulari.name> +;;; Copyright © 2017, 2019, 2020, 2021 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> +;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org> ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz> ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> @@ -15,16 +16,19 @@ ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2022 Adam Kandur <kefironpremise@gmail.com> +;;; Copyright © 2022 Dhruvin Gandhi <contact@dhruvin.dev> ;;; Copyright © 2022 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2022 jgart via Guix-patches via <guix-patches@gnu.org> ;;; Copyright © 2022 muradm <mail@muradm.net> ;;; Copyright © 2022, 2023 Sharlatan Hellseher <sharlatanus@gmail.com> +;;; Copyright © 2023 Filip Lajszczak <filip@lajszczak.dev> ;;; Copyright © 2023 Fries <fries1234@protonmail.com> ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com> ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2023 Thomas Ieong <th.ieong@free.fr> ;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> +;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email> ;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> ;;; ;;; This file is part of GNU Guix. @@ -56,6 +60,7 @@ #:use-module (gnu packages golang-compression) #:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-xyz) + #:use-module (gnu packages ipfs) #:use-module (gnu packages tls) #:use-module (gnu packages web)) @@ -100,6 +105,28 @@ API service accounts for Go.") (license license:asl2.0))) +(define-public go-git-sr-ht-emersion-gqlclient + (package + (name "go-git-sr-ht-emersion-gqlclient") + (version "0.0.0-20230820050442-8873fe0204b9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~emersion/gqlclient") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0x64kcryawdr0daq1w6fada60zqrddw75yi397835b9ij7wb5gmh")))) + (build-system go-build-system) + (arguments + (list #:import-path "git.sr.ht/~emersion/gqlclient")) + (home-page "https://git.sr.ht/~emersion/gqlclient") + (synopsis "GraphQL client and code generator") + (description + "This package provides a GraphQL client and code generator for Go.") + (license license:expat))) + (define-public go-github-com-alexliesenfeld-health (package (name "go-github-com-alexliesenfeld-health") @@ -1094,6 +1121,30 @@ used like a user interface for humans, to read and edit before passing the JSON data to the machine.") (license license:expat))) +(define-public go-github-com-jackpal-go-nat-pmp + (package + (name "go-github-com-jackpal-go-nat-pmp") + (version "1.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jackpal/go-nat-pmp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1p2yrzfbkazc9nisr2iqjwzhb6q16zj6finyxxn2ikk7iiighl1g")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jackpal/go-nat-pmp")) + (home-page "https://github.com/jackpal/go-nat-pmp") + (synopsis "Port mapping and discovery of external IP address") + (description + "This package provides a Go client for the NAT-PMP internet protocol for +port mapping and discovering the external IP address of a firewall.") + (license license:asl2.0))) + (define-public go-github-com-jcmturner-dnsutils-v2 (package (name "go-github-com-jcmturner-dnsutils-v2") @@ -1308,33 +1359,28 @@ router.") (license license:bsd-3))) (define-public go-github-com-multiformats-go-multiaddr - ;; This commit is from <2018-10-01> and associated with GX package manager, - ;; since that time the project has changed versing stile and GX is dropped. - ;; Current versioned tag is v0.12.2 <2024-01-26>. - (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb") - (revision "0")) - (package - (name "go-github-com-multiformats-go-multiaddr") - (version (git-version "1.3.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/multiformats/go-multiaddr") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/multiformats/go-multiaddr")) - (propagated-inputs - (list go-github-com-multiformats-go-multihash)) - (home-page "https://github.com/multiformats/go-multiaddr") - (synopsis "Composable and future-proof network addresses") - (description - "Multiaddr is a standard way to represent addresses that does the + (package + (name "go-github-com-multiformats-go-multiaddr") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/multiformats/go-multiaddr") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cdzlzh7cb1pj9mhq45va3r6gs6pcdfa9j7vdrqlv3zd6k3bxg39")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/multiformats/go-multiaddr")) + (propagated-inputs + (list go-github-com-multiformats-go-multihash)) + (home-page "https://github.com/multiformats/go-multiaddr") + (synopsis "Composable and future-proof network addresses") + (description + "Multiaddr is a standard way to represent addresses that does the following: @itemize @@ -1343,8 +1389,90 @@ following: @item Have a binary packed format. @item Have a nice string representation. @item Encapsulate well. -@end itemize\n") - (license license:expat)))) +@end itemize") + (license license:expat))) + +;; It's for the Kubo update; remove it when it is no longer needed. +(define-public go-github-com-multiformats-go-multiaddr-0.12 + (package + (inherit go-github-com-multiformats-go-multiaddr) + (name "go-github-com-multiformats-go-multiaddr") + (version "0.12.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/multiformats/go-multiaddr") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rn02yn7494r7ayn585bbsddprbn8wdccxs4n2k5dmll4dyd39mp")))) + (arguments + (list + #:go go-1.21 + #:import-path "github.com/multiformats/go-multiaddr")) + (native-inputs (list go-github-com-stretchr-testify)) + (propagated-inputs (list go-github-com-ipfs-go-cid + go-github-com-multiformats-go-multibase + go-github-com-multiformats-go-varint + go-github-com-multiformats-go-multihash + go-golang-org-x-exp-2023)))) + +(define-public go-github-com-multiformats-go-multiaddr-dns + (package + (name "go-github-com-multiformats-go-multiaddr-dns") + (version "0.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/multiformats/go-multiaddr-dns") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17qpcgxlmji6wdnjabl5ihc4zn69w2g0karad46zj70y5zg4y24r")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.21 + #:import-path "github.com/multiformats/go-multiaddr-dns" + #:unpack-path "github.com/multiformats/go-multiaddr-dns")) + (propagated-inputs + (list go-github-com-miekg-dns + go-github-com-multiformats-go-multiaddr-0.12)) + (home-page "https://multiformats.io/multiaddr/") + (synopsis "Library and CLI tool for DNS multiaddr resolution") + (description + "Go library for /dns4, /dns6, /dnsaddr multiaddr resolution.") + (license license:expat))) + +(define-public go-github-com-multiformats-go-multiaddr-fmt + (package + (name "go-github-com-multiformats-go-multiaddr-fmt") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/multiformats/go-multiaddr-fmt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "119qqrnhzcb9im428alssv2dz9rrj74hy0asd10bnfv2d5fd09nm")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.21 + #:import-path "github.com/multiformats/go-multiaddr-fmt")) + (propagated-inputs + (list go-github-com-multiformats-go-multiaddr-0.12)) + (home-page "https://github.com/multiformats/go-multiaddr-fmt") + (synopsis "Declarative validator for multiaddrs") + (description + "This package provides a validation checker for multiaddrs. Some basic +validators for common address types are provided, but creating your own +combinations is easy.") + (license license:expat))) (define-public go-github-com-multiformats-go-multiaddr-net ;; This commit is from <2018-10-01> and associated with GX package manager, @@ -1382,6 +1510,34 @@ symbols like @command{net.Dial} and @command{net.Listen}, as well as conversion to and from @command{net.Addr}.") (license license:expat)))) +(define-public go-github-com-multiformats-go-multistream + (package + (name "go-github-com-multiformats-go-multistream") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/multiformats/go-multistream") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mlcz16ii090vq6brm02dmmkj8akkafa55kyvkrrwpq6zvj1hy23")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.20 + #:import-path "github.com/multiformats/go-multistream")) + (propagated-inputs + (list go-github-com-multiformats-go-varint)) + (home-page "https://github.com/multiformats/go-multistream") + (synopsis "Implementation of the multistream protocol in Golang") + (description + "Package multistream implements a simple stream router for the +multistream-select protocol. The protocol is defined at +@url{https://github.com/multiformats/multistream-select}") + (license license:expat))) + (define-public go-github-com-nwidger-jsoncolor (package (name "go-github-com-nwidger-jsoncolor") @@ -1432,6 +1588,288 @@ which produce colorized output using github.com/fatih/color.") (description "OpenTracing-Go is a Go implementation of the OpenTracing API.") (license license:asl2.0))) +(define-public go-github-com-pion-dtls + (package + (name "go-github-com-pion-dtls") + (version "1.5.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/dtls") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qc5dbgh31lilbd1lpmajj1fjzy4jx9iadzqgl9jd1ry9fj3ly1d")))) + (build-system go-build-system) + (arguments + (list + ;; XXX: TestClientCertificate: Client failed(x509: certificate relies on + ;; legacy Common Name field, use SANs instead) + #:tests? #f + #:import-path "github.com/pion/dtls")) + (propagated-inputs + (list go-github-com-pion-logging + go-github-com-pion-transport + go-golang-org-x-crypto)) + (home-page "https://github.com/pion/dtls") + (synopsis "DTLS 1.2 Server/Client implementation for Go") + (description + "This package provides a native +@url{https://datatracker.ietf.org/doc/html/rfc6347, DTLS 1.2} implementation +in Golang.") + (license license:expat))) + +(define-public go-github-com-pion-dtls-v2 + (package + (inherit go-github-com-pion-dtls) + (name "go-github-com-pion-dtls-v2") + (version "2.2.11") + (source + (origin + (inherit (package-source go-github-com-pion-dtls)) + (uri (git-reference + (url "https://github.com/pion/dtls") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10nn9349f7snqkzncda5m013fgnzicrcxi6pb6ghc0vb6rhqkf30")))) + (arguments + (list + #:go go-1.21 + #:import-path "github.com/pion/dtls/v2")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-pion-logging + go-github-com-pion-transport-v2 + go-github-com-pion-transport-v3 + go-golang-org-x-crypto + go-golang-org-x-net)))) + +(define-public go-github-com-pion-mdns + (package + (name "go-github-com-pion-mdns") + (version "2.0.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/mdns/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03675hx82lx3c8akkxdbkch1z4dbq54r05jk6jgdyd7mrdh9k4lm")))) + (build-system go-build-system) + (arguments + (list + ;; Tests are implemented in GitHub Actions and require aditional + ;; packaging, see + ;; <https://github.com/pion/.goassets/blob/master/.github/workflows/test.reusable.yml>. + #:tests? #f + #:go go-1.21 + #:import-path "github.com/pion/mdns")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-pion-logging + go-github-com-pion-transport-v3 + go-golang-org-x-net)) + (home-page "https://github.com/pion/mdns/") + (synopsis "Pure Go implementation of Multicast DNS") + (description + "This package implements a mDNS (multicast DNS) used by +@url{https://github.com/pion, Pion}.") + (license license:expat))) + +(define-public go-github-com-pion-rtp + (package + (name "go-github-com-pion-rtp") + (version "1.8.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/rtp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1vrdvswvvbqq83kbjlyblarbsn5v0sjcwrcv03nncd605cggnbkx")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.21 + #:import-path "github.com/pion/rtp")) + (propagated-inputs + (list go-github-com-pion-randutil)) + (home-page "https://github.com/pion/rtp") + (synopsis "Go implementation of RTP") + (description + "This package provides a @acronym{Real-time Transport Protocol, RTP} +packetizer and depacketizer.") + (license license:expat))) + +(define-public go-github-com-pion-stun + (package + (name "go-github-com-pion-stun") + (version "0.6.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/stun") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0172fcm1xvzvy3d5lcpscayzpf3i5w4bpfydifdc9l4n2wslx0sm")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.21 + #:import-path "github.com/pion/stun")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-pion-dtls-v2 + go-github-com-pion-logging + go-github-com-pion-transport-v2)) + (home-page "https://github.com/pion/stun") + (synopsis "Go implementation of STUN") + (description + "Package @code{stun} implements Session Traversal Utilities for ++NAT (STUN) (@url{https://tools.ietf.org/html/rfc5389, RFC 5389}) protocol and ++@url{https://pkg.go.dev/github.com/pion/stun#Client, client} with no external ++dependencies and zero allocations in hot paths. Client ++@url{https://pkg.go.dev/github.com/pion/stun#WithRTO, supports} automatic ++request retransmissions.") + (license license:expat))) + +(define-public go-github-com-pion-stun-v2 + (package + (inherit go-github-com-pion-stun) + (name "go-github-com-pion-stun-v2") + (version "2.0.0") + (source + (origin + (inherit (package-source go-github-com-pion-stun)) + (uri (git-reference + (url "https://github.com/pion/stun") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zli55ls5izpr6cw0wj0gy44872xn9rk20i8ay9cfk7j2rb60y60")))) + (arguments + (list + #:go go-1.21 + #:import-path "github.com/pion/stun/v2")) + (propagated-inputs + (list go-github-com-pion-dtls-v2 + go-github-com-pion-logging + go-github-com-pion-transport-v3 + go-golang-org-x-crypto + go-golang-org-x-net)))) + +(define-public go-github-com-pion-transport + (package + (name "go-github-com-pion-transport") + (version "0.14.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/transport") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0331kywqaa6fymc64wrqgwnxlhx31qdf299i927vifx1wdcl9ikp")))) + (build-system go-build-system) + (arguments + (list + ;; Source-only package + #:tests? #f + #:import-path "github.com/pion/transport" + #:phases + #~(modify-phases %standard-phases + (delete 'build)))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-pion-logging + go-golang-org-x-net + go-golang-org-x-sys)) + (home-page "https://github.com/pion/transport") + (synopsis "Golang networking related functions") + (description + "This package implements a various networking related functions used +throughout the @url{https://github.com/pion, Pion} modules.") + (license license:expat))) + +(define-public go-github-com-pion-transport-v2 + (package + (inherit go-github-com-pion-transport) + (name "go-github-com-pion-transport-v2") + (version "2.2.5") + (source + (origin + (inherit (package-source go-github-com-pion-transport)) + (uri (git-reference + (url "https://github.com/pion/transport/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00q3v37l56yr1ch25g5w70jy8y923csbvy4krvy4dv3h5f1mdpmf")))) + (arguments + (list + #:import-path "github.com/pion/transport/v2")))) + +(define-public go-github-com-pion-transport-v3 + (package + (inherit go-github-com-pion-transport) + (name "go-github-com-pion-transport-v3") + (version "3.0.2") + (source + (origin + (inherit (package-source go-github-com-pion-transport)) + (uri (git-reference + (url "https://github.com/pion/transport/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j7ljkbyf2qd7daxg7d1rd6c92md64agi59b69g6jyqpz5jww998")))) + (arguments + (list + #:import-path "github.com/pion/transport/v3")))) + +(define-public go-github-com-pires-go-proxyproto + (package + (name "go-github-com-pires-go-proxyproto") + (version "0.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pires/go-proxyproto") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1p18w555xp187fl807h1yd092cvs8jarp98pa76zl84rxlk4k2h4")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.18 + #:import-path "github.com/pires/go-proxyproto")) + (home-page "https://github.com/pires/go-proxyproto") + (synopsis "Implementation of the PROXY protocol") + (description + "Package proxyproto implements Proxy Protocol (v1 and v2) parser and +writer, as per specification: +@@url{https://www.haproxy.org/download/2.3/doc/proxy-protocol.txt}. It is to +be used in one of or both proxy clients and proxy servers that need to support +said protocol. Both protocol versions, 1 (text-based) and 2 (binary-based) +are supported. @acronym{TLV, tag-length-value} parsers extensions comming with +this library support AWS, Azure and GCP.") + (license license:asl2.0))) + (define-public go-github-com-pkg-sftp (package (name "go-github-com-pkg-sftp") @@ -1546,7 +1984,7 @@ the Go standard library}.") (define-public go-github-com-quic-go-quic-go (package (name "go-github-com-quic-go-quic-go") - (version "0.39.3") + (version "0.42.0") (source (origin (method git-fetch) @@ -1555,20 +1993,42 @@ the Go standard library}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0acabl3cz48nxpggc5s7fwxpmr5amyi09jygn5m5xxkkbhqs2cxq")))) + (base32 "0bdr48nbcjajmhx1h11qfl1i7myxqpyqqk5n21007xyqw13qhb8c")))) (build-system go-build-system) (arguments (list - ;; XXX More packages required... - #:tests? #f - #:go go-1.20 - #:import-path "github.com/quic-go/quic-go")) + #:go go-1.21 + #:import-path "github.com/quic-go/quic-go" + #:phases + #~(modify-phases %standard-phases + ;; TODO: Figure out why some tests fail. + (add-after 'unpack 'remove-failing-tests + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each delete-file + (list "integrationtests/self/timeout_test.go" + "server_test.go"))))) + ;; Test steps are taken from GitHub Actions - + ;; <https://github.com/quic-go/quic-go/blob/v0.42.0/.github/workflows/unit.yml>. + (replace 'check + (lambda* (#:key tests? import-path #:allow-other-keys) + (when tests? + (with-directory-excursion (string-append "src/" import-path) + (invoke "ginkgo" "-r" "-v" + (string-append "--procs=" + (number->string (parallel-job-count))) + "--randomize-all" + "--randomize-suites" + "--skip-package" + "integrationtests")))))))) + (native-inputs + (list go-ginkgo + go-github-com-onsi-ginkgo-v2 + go-go-uber-org-mock + go-golang-org-x-time)) (propagated-inputs - (list go-github-com-cheekybits-genny - go-github-com-golang-protobuf-proto - go-github-com-marten-seemann-chacha20 + (list go-github-com-francoispqt-gojay go-github-com-quic-go-qpack - go-github-com-quic-go-qtls-go1-20 go-golang-org-x-crypto go-golang-org-x-exp go-golang-org-x-net @@ -1581,8 +2041,32 @@ the Go standard library}.") protocol.") (license license:expat))) -(define-public go-github-com-lucas-clemente-quic-go - (deprecated-package "go-github-com-lucas-clemente-quic-go" go-github-com-quic-go-quic-go)) +(define-public go-github-com-sherclockholmes-webpush-go + (package + (name "go-github-com-sherclockholmes-webpush-go") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SherClockHolmes/webpush-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qv16zvkd1c7q81v2ai8pfz590fxdrk4lfbgyymln0q7jn5wlvki")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/SherClockHolmes/webpush-go")) + (propagated-inputs + (list go-github-com-golang-jwt-jwt go-golang-org-x-crypto)) + (home-page "https://github.com/SherClockHolmes/webpush-go") + (synopsis "Web Push API Encryption with VAPID support") + (description + "Web Push API Encryption with +@url{https://datatracker.ietf.org/doc/html/draft-ietf-webpush-vapid-01, VAPID} +support.") + (license license:expat))) (define-public go-github-com-sourcegraph-jsonrpc2 (package @@ -1934,10 +2418,51 @@ Signing and Encryption set of standards. This includes support for JSON Web Encryption, JSON Web Signature, and JSON Web Token standards.") (license license:asl2.0))) +(define-public go-nhooyr-io-websocket + (package + (name "go-nhooyr-io-websocket") + (version "1.8.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nhooyr/websocket") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "019pm2bkzwyvzl61127nqzihchk35q5xh57wy50aa2syn9214fxm")))) + (build-system go-build-system) + (arguments + (list + ;; Tests require additional dependencies like `wasmbrowsertest`. + #:tests? #f + #:import-path "nhooyr.io/websocket")) + (home-page "https://nhooyr.io/websocket") + (synopsis "Minimal and idiomatic WebSocket library for Go") + (description + "Package websocket implements the +@@url{https://rfc-editor.org/rfc/rfc6455.html,RFC 6455} @code{WebSocket} +protocol.") + (license license:isc))) + ;;; ;;; Executables: ;;; +(define-public go-madns + (package + (inherit go-github-com-multiformats-go-multiaddr-dns) + (name "go-madns") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-multiformats-go-multiaddr-dns) + ((#:install-source? _ #t) #f) + ((#:import-path _ "github.com/multiformats/go-multiaddr-dns") + "github.com/multiformats/go-multiaddr-dns/madns"))) + (description + "This package provides a CLI binary executible built from +go-github-com-multiformats-go-multiaddr-dns."))) + (define-public go-minify (package (inherit go-github-com-tdewolff-minify-v2) |