summaryrefslogtreecommitdiff
path: root/gnu/packages/golang-web.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/golang-web.scm')
-rw-r--r--gnu/packages/golang-web.scm398
1 files changed, 389 insertions, 9 deletions
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index c5c3efb7c5..85787d883f 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -16,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.
@@ -102,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")
@@ -1563,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")
@@ -1690,16 +1997,38 @@ the Go standard library}.")
(build-system go-build-system)
(arguments
(list
- ;; XXX More packages required...
- #:tests? #f
#:go go-1.21
- #:import-path "github.com/quic-go/quic-go"))
+ #: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
@@ -1712,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
@@ -2065,6 +2418,33 @@ 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:
;;;