diff options
Diffstat (limited to 'gnu/packages/golang-web.scm')
-rw-r--r-- | gnu/packages/golang-web.scm | 308 |
1 files changed, 256 insertions, 52 deletions
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index e19ca4f5ff..c5c3efb7c5 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -1,6 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU +;;; 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> @@ -10,7 +12,6 @@ ;;; Copyright © 2020 raingloom <raingloom@riseup.net> ;;; Copyright © 2020-2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Collin J. Doering <collin@rekahsoft.ca> -;;; Copyright © 2021 Leo Famulari <leo@famulari.name> ;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com> ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> @@ -19,6 +20,7 @@ ;;; 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 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> @@ -55,6 +57,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)) @@ -552,6 +555,8 @@ metrics (i.e. response time, bytes written, and http status code) from your application's http.Handlers.") (license license:expat))) +;; This project looks like domain or abandoned, see +;; <https://github.com/francoispqt/gojay/issues/150>. (define-public go-github-com-francoispqt-gojay (package (name "go-github-com-francoispqt-gojay") @@ -567,14 +572,20 @@ application's http.Handlers.") (base32 "1ix95qdyajfmxhf9y52vjrih63f181pjs4v5as8905s4d5vmkd06")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/francoispqt/gojay")) + (list + ;; XXX: Disable failing tests on non-x86-64 architecture, see + ;; <https://github.com/francoispqt/gojay/issues/173>. + #:tests? (and (not (%current-target-system)) + (target-x86-64?)) + #:import-path "github.com/francoispqt/gojay")) (native-inputs (list go-github-com-stretchr-testify)) + (home-page "https://github.com/francoispqt/gojay") (synopsis "JSON encoder/decoder with powerful stream API for Golang") - (description "GoJay is a performant JSON encoder/decoder for Golang. It has -a simple API and doesn't use reflection. It relies on small interfaces to + (description + "GoJay is a performant JSON encoder/decoder for Golang. It has a simple +API and doesn't use reflection. It relies on small interfaces to decode/encode structures and slices.") - (home-page "https://github.com/francoispqt/gojay") (license license:expat))) ;; TODO: This repository has been archived by the owner on Aug 30, 2023. It is @@ -707,6 +718,35 @@ Encryption, JSON Web Signature, and JSON Web Token standards.") "Fast JSON encoder/decoder compatible with encoding/json for Go.") (license license:expat))) +(define-public go-github-com-golang-groupcache + (let ((commit "41bb18bfe9da5321badc438f91158cd790a33aa3") + (revision "3")) + (package + (name "go-github-com-golang-groupcache") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang/groupcache") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07amgr8ji4mnq91qbsw2jlcmw6hqiwdf4kzfdrj8c4b05w4knszc")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/golang/groupcache")) + (propagated-inputs + (list go-github-com-golang-protobuf-proto)) + (home-page "https://github.com/golang/groupcache") + (synopsis "Groupcache is a caching and cache-filling library") + (description + "Groupcache is a caching and cache-filling library, intended +as a replacement for memcached in many cases. It provides a data loading +mechanism with caching and de-duplication that works across a set of peer +processes.") + (license license:asl2.0)))) + (define-public go-github-com-google-go-github (package (name "go-github-com-google-go-github") @@ -1056,6 +1096,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") @@ -1188,6 +1252,40 @@ Microsoft AD PAC authorization data.") transforms one JSON document into another through a JMESPath expression.") (license license:asl2.0))) +(define-public go-github-com-json-iterator-go + (package + (name "go-github-com-json-iterator-go") + (version "1.1.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/json-iterator/go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1c8f0hxm18wivx31bs615x3vxs2j3ba0v6vxchsjhldc8kl311bz")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/json-iterator/go")) + (native-inputs + (list go-github-com-davecgh-go-spew + go-github-com-google-gofuzz + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-modern-go-concurrent + go-github-com-modern-go-reflect2)) + (home-page "https://github.com/json-iterator/go") + (synopsis "High-performance replacement for Golang @code{encoding/json}") + (description + "This package implements encoding and decoding of JSON as defined in +@uref{https://rfc-editor.org/rfc/rfc4627.html,RFC 4627} and provides +interfaces with identical syntax of standard lib encoding/json. Converting +from encoding/json to jsoniter is no more than replacing the package with +jsoniter and variable type declarations (if any). jsoniter interfaces gives +100% compatibility with code using standard lib.") + (license license:expat))) + (define-public go-github-com-julienschmidt-httprouter (package (name "go-github-com-julienschmidt-httprouter") @@ -1236,39 +1334,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")) - (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 + (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 @@ -1277,8 +1364,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, @@ -1305,15 +1474,8 @@ following: ;; 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)) + (propagated-inputs + (list go-github-com-multiformats-go-multiaddr)) (home-page "https://github.com/multiformats/go-multiaddr-net") (synopsis "Multiaddress net tools") (description @@ -1323,6 +1485,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") @@ -1487,7 +1677,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) @@ -1496,13 +1686,13 @@ 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 + #:go go-1.21 #:import-path "github.com/quic-go/quic-go")) (propagated-inputs (list go-github-com-cheekybits-genny @@ -1879,6 +2069,20 @@ Encryption, JSON Web Signature, and JSON Web Token standards.") ;;; 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) |