diff options
Diffstat (limited to 'gnu/packages/golang-web.scm')
-rw-r--r-- | gnu/packages/golang-web.scm | 232 |
1 files changed, 232 insertions, 0 deletions
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index 1d7ad01af2..e19ca4f5ff 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -1,4 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz> @@ -98,6 +99,45 @@ API service accounts for Go.") (license license:asl2.0))) +(define-public go-github-com-alexliesenfeld-health + (package + (name "go-github-com-alexliesenfeld-health") + (version "0.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alexliesenfeld/health") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fchlvxwidsscskwq07vhxfwcn5wbigbizi51619l8gg09mr158q")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/alexliesenfeld/health" + #:phases #~(modify-phases %standard-phases + ;; Examples requires additional dependencies and comes with + ;; their own go.mod, consider to pack it as separate + ;; package if required. + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (delete-file-recursively + (string-append "src/" import-path "/examples"))))))) + (native-inputs (list go-github-com-stretchr-testify)) + (home-page "https://github.com/alexliesenfeld/health") + (synopsis "Simple and flexible health check library for Go") + (description + "This library provides a @code{http.Handler} that acts as a health +endpoint. It can be used by cloud infrastructure or other services to +determine the availability of an application. + +Rather than simply returning a response with HTTP status code 200, this +library allows building health checks that test the availability of all +required dependencies. The HTTP response contains the aggregated health +result and details about the health status of each component.") + (license license:expat))) + (define-public go-github-com-andybalholm-cascadia (package (name "go-github-com-andybalholm-cascadia") @@ -964,6 +1004,35 @@ compliant cache for HTTP responses. It is only suitable for use as a shared proxy).") (license license:expat)))) +(define-public go-github-com-hashicorp-go-cleanhttp + (package + (name "go-github-com-hashicorp-go-cleanhttp") + (version "0.5.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hashicorp/go-cleanhttp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1i5xslizzwd966w81bz6dxjwzgml4q9bwqa186bsxd1vi8lqxl9p")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/hashicorp/go-cleanhttp")) + (home-page "https://github.com/hashicorp/go-cleanhttp") + (synopsis "Functions for accessing clean Go @code{http.Client} values") + (description + "The Go standard library contains a default @code{http.Client} and it is +a common idiom to tweak it as necessary. Unfortunately, this is a shared +value, and it is not uncommon for libraries to assume that they are free to +modify it at will. This package provides some simple functions to get a +\"clean\" @code{http.Client}, namely one that uses the same default values as +the Go standard library, but returns a client that does not share any state +with other clients.") + (license license:mpl2.0))) + (define-public go-github-com-hjson-hjson-go (package (name "go-github-com-hjson-hjson-go") @@ -1166,6 +1235,94 @@ router.") (description "@code{bluemonday} is a HTML sanitizer implemented in Go.") (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")) + (native-inputs + (list go-github-com-gxed-hashland-keccakpg + go-github-com-minio-blake2b-simd + go-github-com-minio-sha256-simd + go-github-com-mr-tron-base58 + go-github-com-multiformats-go-multihash + go-github-com-spaolacci-murmur3 + go-golang-org-x-crypto)) + (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 +@item Support any standard network protocols. +@item Self-describe (include protocols). +@item Have a binary packed format. +@item Have a nice string representation. +@item Encapsulate well. +@end itemize\n") + (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, + ;; since that time the project has changed versing stile and GX is dropped. + ;; The latest versioned tag is v0.1.5 <2020-04-30>. The project is archved + ;; on <2021-10-05>. + (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e") + (revision "0")) + (package + (name "go-github-com-multiformats-go-multiaddr-net") + (version (git-version "1.6.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/multiformats/go-multiaddr-net") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3")))) + (build-system go-build-system) + (arguments + (list + ;; TODO: Tests fail because they try to access the network. + #:tests? #f + #:import-path "github.com/multiformats/go-multiaddr-net")) + (native-inputs + (list go-github-com-gxed-hashland-keccakpg + go-github-com-minio-blake2b-simd + go-github-com-minio-sha256-simd + go-github-com-mr-tron-base58 + go-github-com-multiformats-go-multiaddr + go-github-com-multiformats-go-multihash + go-github-com-spaolacci-murmur3 + go-golang-org-x-crypto)) + (home-page "https://github.com/multiformats/go-multiaddr-net") + (synopsis "Multiaddress net tools") + (description + "This package provides Multiaddr specific versions of common functions +in stdlib's @command{net} package. This means wrappers of standard net +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-nwidger-jsoncolor (package (name "go-github-com-nwidger-jsoncolor") @@ -1293,6 +1450,81 @@ Caching.") to jQuery to the Go language.") (license license:bsd-3))) +(define-public go-github-com-quic-go-qpack + (package + (name "go-github-com-quic-go-qpack") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/quic-go/qpack") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00mjz445hhx4yar5l8p21bpp4d06jyg2ajw0ax7bh64d37l4kx39")))) + (build-system go-build-system) + (arguments + (list + ;; Tests require ginkgo v2. + #:tests? #f + #:go go-1.20 + #:import-path "github.com/quic-go/qpack")) + (propagated-inputs + (list go-github-com-onsi-ginkgo + go-github-com-onsi-gomega + go-golang-org-x-net)) + (home-page "https://github.com/quic-go/qpack") + (synopsis "Minimal QPACK (RFC 9204) implementation for Go") + (description + "A minimal QPACK (RFC 9204) implementation in Go. It is minimal in the sense +that it doesn't use the dynamic table at all, but just the static table and (Huffman +encoded) string literals. Wherever possible, it reuses code from the +@url{https://github.com/golang/net/tree/master/http2/hpack, HPACK implementation in +the Go standard library}.") + (license license:expat))) + +(define-public go-github-com-quic-go-quic-go + (package + (name "go-github-com-quic-go-quic-go") + (version "0.39.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/quic-go/quic-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0acabl3cz48nxpggc5s7fwxpmr5amyi09jygn5m5xxkkbhqs2cxq")))) + (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")) + (propagated-inputs + (list go-github-com-cheekybits-genny + go-github-com-golang-protobuf-proto + go-github-com-marten-seemann-chacha20 + 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 + go-golang-org-x-sync + go-golang-org-x-sys)) + (home-page "https://github.com/quic-go/quic-go") + (synopsis "QUIC in Go") + (description + "This package provides a Go language implementation of the QUIC network +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-sourcegraph-jsonrpc2 (package (name "go-github-com-sourcegraph-jsonrpc2") |