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.scm308
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)