guix/gnu/packages/golang-web.scm

2690 lines
99 KiB
Scheme
Raw Normal View History

;;; 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>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;; 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 Philip McGrath <philip@philipmcgrath.com>
;;; 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.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages golang-web)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix build-system go)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#: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))
;;; Commentary:
;;;
;;; Golang modules (libraries) related to HTML, CSS, SCSS, JavaScript, JSON,
;;; Web-framework, REST-API or similar functionality. They may provide
;;; executables and libraries, for which there are marked sections.
;;;
;;; Please: Try to add new module packages in alphabetic order.
;;;
;;; Code:
;;;
;;; Libraries:
;;;
(define-public go-cloud-google-com-go-compute-metadata
(package
(name "go-cloud-google-com-go-compute-metadata")
(version "0.81.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/googleapis/google-cloud-go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "15jgynqb5pbxqbj3a7ii970yn4srsw1dbxzxnhpkfkmplalpgyh3"))))
(build-system go-build-system)
(arguments
'(#:unpack-path "cloud.google.com/go"
#:import-path "cloud.google.com/go/compute/metadata"))
(home-page
"https://pkg.go.dev/cloud.google.com/go/compute/metadata")
(synopsis
"Go wrapper for Google Compute Engine metadata service")
(description
"This package provides access to Google Compute Engine (GCE) metadata and
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")
(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")
(version "1.3.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/andybalholm/cascadia")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0zgc9fjkn7d66cnmgnmalr9lrq4ii1spap95pf2x1hln4pflib5s"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/andybalholm/cascadia"))
(native-inputs
(list go-golang-org-x-net))
(home-page "https://github.com/andybalholm/cascadia/")
(synopsis "CSS selectors for HTML")
(description "The Cascadia package implements CSS selectors for use with
the parse trees produced by the html package.")
(license license:bsd-2)))
(define-public go-github-com-aws-sdk
(package
(name "go-github-com-aws-sdk")
(version "1.35.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aws/aws-sdk-go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1ky5lw2s2zpslnnqcs6hgsrwvwbxwgflb5jwf16dd4aga3vrg10c"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/aws/aws-sdk-go/aws"
#:unpack-path "github.com/aws/aws-sdk-go"))
(propagated-inputs
(list go-github-com-go-sql-driver-mysql
go-github-com-jmespath-go-jmespath
go-github-com-pkg-errors
go-golang-org-x-net))
(home-page "https://github.com/aws/aws-sdk-go")
(synopsis "Library to access Amazon Web Services (AWS)")
(description
"This is the official AWS SDK for the Go programming language.")
(license license:asl2.0)))
;; XXX: This package might be a duplicate of go-github-com-aws-sdk, it's not
;; in use anywhere. Keep it here for the farther review.
(define-public go-github-com-aws-aws-sdk-go
(package
(name "go-github-com-aws-aws-sdk-go")
(version "1.36.18")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aws/aws-sdk-go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "169mkkw1cff1px6326krwvfpfj07sb4y5rbn003gi4bk176h6ry9"))))
(build-system go-build-system)
(propagated-inputs
(list go-github-com-jmespath-go-jmespath))
(arguments
'(#:import-path "github.com/aws/aws-sdk-go"
#:phases %standard-phases))
(synopsis "The official AWS SDK for the Go programming language")
(description
"The official AWS SDK for the Go programming language.")
(home-page "https://github.com/aws/aws-sdk-go")
(license license:asl2.0)))
(define-public go-github-com-aws-aws-sdk-go-v2
(package
(name "go-github-com-aws-aws-sdk-go-v2")
(version "1.17.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aws/aws-sdk-go-v2")
(commit "v1.17.3")))
(file-name (git-file-name name version))
(sha256
(base32 "1a07xab1cn96iff7zvp5a82fzhqwl0i4bhplkm2h1qbkxgldn6x0"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/aws/aws-sdk-go-v2"))
(propagated-inputs
(list go-github-com-aws-smithy-go
go-github-com-google-go-cmp-cmp
go-github-com-jmespath-go-jmespath))
(home-page "https://github.com/aws/aws-sdk-go-v2")
(synopsis "AWS SDK for Go v2")
(description
"Package sdk is the official AWS SDK v2 for the Go programming language.")
(license license:asl2.0)))
(define-public go-github-com-aws-aws-sdk-go-v2-config
(package
(inherit go-github-com-aws-aws-sdk-go-v2)
(name "go-github-com-aws-aws-sdk-go-v2-config")
(version "1.18.5")
(arguments
'(#:import-path "github.com/aws/aws-sdk-go-v2/config"
#:unpack-path "github.com/aws/aws-sdk-go-v2"))
(propagated-inputs
(list go-github-com-google-go-cmp-cmp
go-github-com-aws-smithy-go))))
(define-public go-github-com-aws-aws-sdk-go-v2-feature-s3-manager
(package
(inherit go-github-com-aws-aws-sdk-go-v2)
(name "go-github-com-aws-aws-sdk-go-v2-feature-s3-manager")
(version "1.11.44")
(arguments
'(#:import-path "github.com/aws/aws-sdk-go-v2/feature/s3/manager"
#:unpack-path "github.com/aws/aws-sdk-go-v2"))
(propagated-inputs (list go-github-com-aws-smithy-go))))
(define-public go-github-com-aws-aws-sdk-go-v2-service-iam
(package
(inherit go-github-com-aws-aws-sdk-go-v2)
(name "go-github-com-aws-aws-sdk-go-v2-service-iam")
(version "1.44.161")
(arguments
'(#:import-path "github.com/aws/aws-sdk-go-v2/service/iam"
#:unpack-path "github.com/aws/aws-sdk-go-v2"))
(propagated-inputs
(list go-github-com-aws-smithy-go))))
(define-public go-github-com-aws-aws-sdk-go-v2-service-s3
(package
(inherit go-github-com-aws-aws-sdk-go-v2)
(name "go-github-com-aws-aws-sdk-go-v2-service-s3")
(version "1.30.0")
(arguments
'(#:import-path "github.com/aws/aws-sdk-go-v2/service/s3"
#:unpack-path "github.com/aws/aws-sdk-go-v2"))
(propagated-inputs
(list go-github-com-aws-smithy-go))))
(define-public go-github-com-aws-aws-sdk-go-v2-service-sso
(package
(inherit go-github-com-aws-aws-sdk-go-v2)
(name "go-github-com-aws-aws-sdk-go-v2-service-sso")
(version "1.11.27")
(arguments
'(#:import-path "github.com/aws/aws-sdk-go-v2/service/sso"
#:unpack-path "github.com/aws/aws-sdk-go-v2"))
(propagated-inputs
(list go-github-com-aws-smithy-go))))
(define-public go-github-com-aws-aws-sdk-go-v2-service-ssooidc
(package
(inherit go-github-com-aws-aws-sdk-go-v2)
(name "go-github-com-aws-aws-sdk-go-v2-service-ssooidc")
(version "1.13.10")
(arguments
'(#:import-path "github.com/aws/aws-sdk-go-v2/service/ssooidc"
#:unpack-path "github.com/aws/aws-sdk-go-v2"))
(propagated-inputs
(list go-github-com-aws-smithy-go))))
(define-public go-github-com-aws-aws-sdk-go-v2-service-sts
(package
(inherit go-github-com-aws-aws-sdk-go-v2)
(name "go-github-com-aws-aws-sdk-go-v2-service-sts")
(version "1.17.7")
(arguments
'(#:import-path "github.com/aws/aws-sdk-go-v2/service/sts"
#:unpack-path "github.com/aws/aws-sdk-go-v2"))
(propagated-inputs
(list go-github-com-aws-smithy-go))))
(define-public go-github-com-aws-smithy-go
(package
(name "go-github-com-aws-smithy-go")
(version "1.13.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aws/smithy-go")
(commit "v1.13.5")))
(file-name (git-file-name name version))
(sha256
(base32 "1rgyk0m2d3agknnlzjqvac1a61wwdq1pbck7vyl587m38n5zi2cz"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/aws/smithy-go"))
(propagated-inputs
(list go-github-com-jmespath-go-jmespath go-github-com-google-go-cmp-cmp))
(home-page "https://github.com/aws/smithy-go")
(synopsis "@url{https://smithy.io/2.0/index.html,Smithy} code generators
for Go")
(description
"Package smithy provides the core components for a Smithy SDK.")
(license license:asl2.0)))
(define-public go-github-com-aymerick-douceur
(package
(name "go-github-com-aymerick-douceur")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aymerick/douceur/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1hfysznib0fqbp8vqxpk0xiggpp0ayk2bsddi36vbg6f8zq5f81n"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/aymerick/douceur"))
(native-inputs
(list go-github-com-andybalholm-cascadia
go-github-com-gorilla-css
go-github-com-puerkitobio-goquery
go-golang-org-x-net))
(home-page "https://github.com/aymerick/douceur/")
(synopsis "CSS parser and inliner")
(description "This package provides a CSS parser and inliner.")
(license license:expat)))
(define-public go-github-com-bep-golibsass
(package
(name "go-github-com-bep-golibsass")
(version "0.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bep/golibsass")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0xk3m2ynbydzx87dz573ihwc4ryq0r545vz937szz175ivgfrhh3"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "libsass_src")
#t))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/bep/golibsass/libsass"
#:unpack-path "github.com/bep/golibsass"
;; The dev build tag modifies the build to link to system libsass
;; instead of including the bundled one (which we remove.)
;; https://github.com/bep/golibsass/blob/v0.7.0/internal/libsass/a__cgo_dev.go
#:build-flags '("-tags" "dev")
#:phases
(modify-phases %standard-phases
(add-before 'build 'generate-bindings
;; Generate bindings for system libsass, replacing the
;; pre-generated bindings.
(lambda* (#:key inputs unpack-path #:allow-other-keys)
(mkdir-p (string-append "src/" unpack-path "/internal/libsass"))
(let ((libsass-src (string-append (assoc-ref inputs "libsass-src") "/src")))
(substitute* (string-append "src/" unpack-path "/gen/main.go")
(("filepath.Join\\(rootDir, \"libsass_src\", \"src\"\\)")
(string-append "\"" libsass-src "\""))
(("../../libsass_src/src/")
libsass-src)))
(invoke "go" "generate" (string-append unpack-path "/gen"))
#t))
(replace 'check
(lambda* (#:key tests? import-path #:allow-other-keys)
(if tests?
(invoke "go" "test" import-path "-tags" "dev"))
#t)))))
(propagated-inputs
(list libsass))
(native-inputs
`(("go-github-com-frankban-quicktest" ,go-github-com-frankban-quicktest)
("libsass-src" ,(package-source libsass))))
(home-page "https://github.com/bep/golibsass")
(synopsis "Easy to use Go bindings for LibSass")
(description
"This package provides SCSS compiler support for Go applications.")
(license license:expat)))
(define-public go-github-com-chris-ramon-douceur
(package
(name "go-github-com-chris-ramon-douceur")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/chris-ramon/douceur")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1hfysznib0fqbp8vqxpk0xiggpp0ayk2bsddi36vbg6f8zq5f81n"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/chris-ramon/douceur"))
(propagated-inputs
(list go-github-com-aymerick-douceur
go-github-com-gorilla-css))
(native-inputs
(list go-github-com-puerkitobio-goquery
go-github-com-andybalholm-cascadia
go-golang-org-x-net))
(home-page "https://github.com/chris-ramon/douceur/")
(synopsis "CSS parser and inliner")
(description "This package provides a CSS parser and inliner.")
(license license:expat)))
(define-public go-github-com-coreos-go-oidc
(package
(name "go-github-com-coreos-go-oidc")
(version "2.2.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/coreos/go-oidc")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "11m6slbpi33ynffml7812piq4anhjlf1qszjlsf26f5y7x3qh8n5"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/coreos/go-oidc"))
(propagated-inputs
(list go-github-com-pquerna-cachecontrol
go-golang-org-x-oauth2
go-gopkg-in-square-go-jose-v2))
(home-page "https://github.com/coreos/go-oidc")
(synopsis "OpenID Connect support for Go")
(description
"This package enables OpenID Connect support for the
@code{go-golang-org-x-oauth2} package.")
(license license:asl2.0)))
(define-public go-github-com-coreos-go-oidc-v3
(package
(inherit go-github-com-coreos-go-oidc)
(name "go-github-com-coreos-go-oidc-v3")
(version "3.6.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/coreos/go-oidc")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1sbm6n3lp48lymn0g921afhq2j6inb38w3wy5rhyx9h8gpzhnxx9"))))
(arguments
(list ;; no Go files in [...]/src/github.com/coreos/go-oidc/v3.
#:import-path "github.com/coreos/go-oidc/v3/oidc"
#:unpack-path "github.com/coreos/go-oidc/v3"))
(propagated-inputs
(list go-github-com-go-jose-go-jose-v3
go-golang-org-x-oauth2))))
(define-public go-github-com-emicklei-go-restful
(package
(name "go-github-com-emicklei-go-restful")
(version "3.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/emicklei/go-restful")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0m1y5a6xr6hmdj77afrvyh2llkbhn1166lcrgis654shl8zs9qhz"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/emicklei/go-restful"))
(home-page "https://github.com/emicklei/go-restful")
(synopsis "Build REST-style web services using Go")
(description "This package provides @code{go-restful}, which helps
developers to use @code{http} methods explicitly and in a way that's
consistent with the HTTP protocol definition.")
(license license:expat)))
(define-public go-github-com-felixge-httpsnoop
(package
(name "go-github-com-felixge-httpsnoop")
(version "1.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/felixge/httpsnoop")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0ncd8lar5zxiwjhsp315s4hsl4bhnm271h49jhyxc66r5yffgmac"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/felixge/httpsnoop"))
(home-page "https://github.com/felixge/httpsnoop/")
(synopsis "Capture http related metrics")
(description
"Httpsnoop provides an easy way to capture http related
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")
(version "1.2.13")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/francoispqt/gojay")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1ix95qdyajfmxhf9y52vjrih63f181pjs4v5as8905s4d5vmkd06"))))
(build-system go-build-system)
(arguments
(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
decode/encode structures and slices.")
(license license:expat)))
;; TODO: This repository has been archived by the owner on Aug 30, 2023. It is
;; now read-only. The raven-go SDK is no longer maintained and was superseded
;; by the sentry-go
(define-public go-github-com-getsentry-raven-go
(let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92")
(revision "0"))
(package
(name "go-github-com-getsentry-raven-go")
(version (git-version "0.2.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/getsentry/raven-go")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/getsentry/raven-go"))
(propagated-inputs
(list go-github-com-certifi-gocertifi go-github-com-pkg-errors))
(home-page "https://github.com/getsentry/raven-go")
(synopsis "Sentry client in Go")
(description "This package is a Go client API for the Sentry event/error
logging system.")
(license license:bsd-3))))
(define-public go-github-com-go-chi-chi-v5
(package
(name "go-github-com-go-chi-chi-v5")
(version "5.0.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/go-chi/chi")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0rzrsxz4xj0973c6nxklvq2vmg2m795snhk25836i0gnd1jnx79k"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/go-chi/chi/v5"))
(home-page "https://github.com/go-chi/chi")
(synopsis "Composable router for HTTP services written in Go")
(description
"@code{go-github-com-go-chi-chi-v5} is an HTTP router that lets the user
decompose request handling into many smaller layers.")
(license license:expat)))
(define-public go-github-com-go-jose-go-jose-v3
(package
(name "go-github-com-go-jose-go-jose-v3")
(version "3.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/go-jose/go-jose")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1fnw0p49wc9gmd2xcji2x9jf97dgg9igagd5m6bmq3nw9jjfqdc5"))))
(build-system go-build-system)
(arguments
'( #:import-path "github.com/go-jose/go-jose/v3"))
(propagated-inputs
(list go-golang-org-x-crypto))
(native-inputs
(list go-github-com-google-go-cmp-cmp
go-github-com-stretchr-testify))
(home-page "https://github.com/go-jose/go-jose")
(synopsis "Implementation of JOSE standards (JWE, JWS, JWT) in Go")
(description
"This package provides a Golang implementation of the Javascript Object
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-github-com-go-telegram-bot-api-telegram-bot-api
(package
(name "go-github-com-go-telegram-bot-api-telegram-bot-api")
(version "4.6.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/go-telegram-bot-api/telegram-bot-api")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1x6j0k3aiicsr8l53na99ci10zm3qpn2syz4f60fzh164w5k1l7w"))))
(build-system go-build-system)
(home-page "https://go-telegram-bot-api.dev/")
(arguments
(list #:tests? #f ; Upstream tests are broken.
#:import-path "github.com/go-telegram-bot-api/telegram-bot-api"))
(propagated-inputs
(list go-github-com-technoweenie-multipartstreamer))
(synopsis "Golang bindings for the Telegram Bot API")
(description
"This package provides Golang bindings for the Telegram Bot API.")
(license license:expat)))
(define-public go-github-com-goccy-go-json
(package
(name "go-github-com-goccy-go-json")
(version "0.10.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/goccy/go-json")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1krid2hlvs808jl9zmv7m6zx92samc60gymhwr2mwwykicwbnks8"))
(modules '((guix build utils)))
(snippet '(delete-file-recursively "benchmarks"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/goccy/go-json"))
(home-page "https://github.com/goccy/go-json")
(synopsis "JSON encoder/decoder in Go")
(description
"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")
(version "26.1.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/go-github")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0x0zz1vcmllp6r6l2qin9b2llm5cxbf6n84rf99h8wrmhvzs2ipi"))))
(build-system go-build-system)
(arguments
`(#:tests? #f ;application/octet-stream instead of text/plain
#:import-path "github.com/google/go-github/v26/github"
#:unpack-path "github.com/google/go-github/v26"))
(native-inputs
(list go-github-com-google-go-querystring go-golang-org-x-crypto))
(home-page "https://github.com/google/go-github/")
(synopsis "Client library for accessing the GitHub API v3")
(description "@code{go-github} is a Go client library for accessing the
GitHub API v3.")
(license license:bsd-3)))
;; For chezmoi-1.8.10
(define-public go-github-com-google-go-github-v33
(package
(inherit go-github-com-google-go-github)
(name "go-github-com-google-go-github-v33")
(version "33.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/go-github")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1nzwgvaa9k1ky3sfynib6nhalam9dx66h5lxff334m9kk3rf5nn0"))))
(arguments
(substitute-keyword-arguments
(package-arguments go-github-com-google-go-github)
((#:unpack-path _ "github.com/google/go-github/v26")
"github.com/google/go-github/v33")
((#:import-path _ "github.com/google/go-github/v26/github")
"github.com/google/go-github/v33/github")))))
(define-public go-github-com-google-safehtml
(package
(name "go-github-com-google-safehtml")
(version "0.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/safehtml")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0j2xjy8xrk9y9k6bqpvimj84i6hg1wwsyvwsb0axhmp49cmnrp86"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/google/safehtml"))
(propagated-inputs
(list go-golang-org-x-text))
(home-page "https://github.com/google/safehtml")
(synopsis "Safe HTML for Go")
(description
"Package safehtml provides immutable string-like types which represent
values that are guaranteed to be safe, by construction or by escaping or
sanitization, to use in various HTML contexts and with various DOM APIs.")
(license license:bsd-3)))
(define-public go-github-com-gorilla-context
(let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
(revision "0"))
(package
(name "go-github-com-gorilla-context")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gorilla/context")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/gorilla/context"))
(home-page "https://github.com/gorilla/context")
(synopsis "Go registry for request variables")
(description
"This package provides @code{gorilla/context}, which is a general
purpose registry for global request variables in the Go programming
language.")
(license license:bsd-3))))
(define-public go-github-com-gorilla-csrf
(package
(name "go-github-com-gorilla-csrf")
(version "1.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gorilla/csrf")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0iryq0z48yi7crfbd8jxyn7lh1gsglpiglvjgnf23bz6xfisssav"))))
(build-system go-build-system)
(propagated-inputs
`(("github.com/gorilla/securecookie" ,go-github-com-gorilla-securecookie)
("github.com/pkg/errors" ,go-github-com-pkg-errors)))
(arguments
'(#:import-path "github.com/gorilla/csrf"))
(home-page "https://github.com/gorilla/csrf")
(synopsis "Cross Site Request Forgery (CSRF) prevention middleware")
(description
"Gorilla/csrf provides Cross Site Request Forgery (CSRF) prevention
middleware for Go web applications and services.")
(license license:bsd-3)))
(define-public go-github-com-gorilla-css
(package
(name "go-github-com-gorilla-css")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gorilla/css")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "116fhy3n7bsq3psyn4pa0i4x9zy916kh1zxslmbbp0p9l4i7ysrj"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/gorilla/css/scanner"
#:unpack-path "github.com/gorilla/css"))
(home-page "https://github.com/gorilla/css/")
(synopsis "CSS3 tokenizer")
(description "This package provides a CSS3 tokenizer.")
(license license:bsd-3)))
(define-public go-github-com-gorilla-handlers
(package
(name "go-github-com-gorilla-handlers")
(version "1.5.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gorilla/handlers")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "15gycdz9lkjnsvvichsbdf25vf6pi1sfn41khhz53iqf300l0w0s"))))
(build-system go-build-system)
(arguments
'(#:tests? #f ; Tries to download from the internet
#:import-path "github.com/gorilla/handlers"))
(propagated-inputs
(list go-github-com-felixge-httpsnoop))
(home-page "https://github.com/gorilla/handlers")
(synopsis "Middleware for Go HTTP services and web applications")
(description "A collection of useful middleware for Go HTTP services and
web applications.")
(license license:bsd-3)))
(define-public go-github-com-gorilla-mux
(package
(name "go-github-com-gorilla-mux")
(version "1.8.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gorilla/mux")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "18f0q9qxgq1yh4ji07mqhiydfcwvi56z9d775v7dc7yckj33kpdk"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/gorilla/mux"))
(home-page "https://github.com/gorilla/mux")
(synopsis "URL router and dispatcher for Go")
(description
"Gorilla/Mux implements a request router and dispatcher for matching
incoming requests with their respective handler.")
(license license:bsd-3)))
(define-public go-github-com-gorilla-securecookie
(package
(name "go-github-com-gorilla-securecookie")
(version "1.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gorilla/securecookie")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "16bqimpxs9vj5n59vm04y04v665l7jh0sddxn787pfafyxcmh410"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/gorilla/securecookie"))
(home-page "https://github.com/gorilla/securecookie")
(synopsis "Encodes and decodes authenticated and optionally encrypted
cookie values")
(description
"Gorilla/securecookie encodes and decodes authenticated and optionally
encrypted cookie values for Go web applications.")
(license license:bsd-3)))
(define-public go-github-com-gorilla-sessions
(package
(name "go-github-com-gorilla-sessions")
(version "1.2.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gorilla/sessions")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1zjw2s37yggk9231db0vmgs67z8m3am8i8l4gpgz6fvlbv52baxp"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/gorilla/sessions"))
(propagated-inputs
(list go-github-com-gorilla-securecookie))
(home-page "https://github.com/gorilla/sessions")
(synopsis "Manage user sessions in web applications")
(description
"This package that provides infrastructure for creating and managing user
sessions in web applications. It supports cookie and filesystem-based
sessions, flash messages, custom backends, and more.")
(license license:bsd-3)))
(define-public go-github-com-gorilla-websocket
(package
(name "go-github-com-gorilla-websocket")
(version "1.5.0")
(home-page "https://github.com/gorilla/websocket")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1xrr6snvs9g1nzxxg05w4i4pq6k1xjljl5mvavd838qc468n118i"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/gorilla/websocket"))
(synopsis "Fast WebSocket implementation for Go")
(description "Gorilla WebSocket is a Go implementation of the WebSocket
protocol.")
(license license:bsd-2)))
(define-public go-github-com-gregjones-httpcache
(let ((commit "901d90724c7919163f472a9812253fb26761123d")
(revision "0"))
(package
(name "go-github-com-gregjones-httpcache")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gregjones/httpcache")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "05r0xq51vfb55di11m7iv19341d73f7in33vq1ihcqs1nffdwiq0"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/gregjones/httpcache"))
(home-page "https://github.com/gregjones/httpcache")
(synopsis "Transport for @code{http.Client} that will cache responses")
(description
"Package @code{httpcache} provides a @code{http.RoundTripper}
implementation that works as a mostly @url{https://tools.ietf.org/html/rfc7234, RFC 7234}
compliant cache for HTTP responses. It is only suitable for use as a
\"private\" cache (i.e. for a web-browser or an API-client and not for 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")
(version "4.3.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hjson/hjson-go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "138vmbnrwzxf64cia27k407clrydvs2jx927dlv6ziydiqyvy7m3"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/hjson/hjson-go"))
(home-page "https://hjson.org/")
(synopsis "Human JSON implementation for Go")
(description "Hjson is a syntax extension to JSON. It is intended to be
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")
(version "2.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jcmturner/dnsutils")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "116zbgvfj88vv93fnapmmgyd5g8kzy774cdyzsnnzyzng92j61c9"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/jcmturner/dnsutils/v2"))
(native-inputs
(list go-github-com-stretchr-testify))
(home-page "https://github.com/jcmturner/dnsutils")
(synopsis "Go library with DNS utils")
(description
"The dnsutils package provides a Go function to return a map of Service
Records (SRV) in the order they should be used for a given service, protocol
and name. The order is determined by the records' priority and randomized
selection based on their relative weighting. This package is useful for
network applications that require accessing services using SRV records.")
(license license:asl2.0)))
(define-public go-github-com-jcmturner-goidentity-v6
(package
(name "go-github-com-jcmturner-goidentity-v6")
(version "6.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jcmturner/goidentity")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "064ysvxvrvij843s7qj1nkzl5qc6j1qbrsb3s0zmwd1sa7vq8q1n"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/jcmturner/goidentity/v6"))
(native-inputs
(list go-github-com-stretchr-testify))
(propagated-inputs
(list go-github-com-hashicorp-go-uuid))
(home-page "https://github.com/jcmturner/goidentity")
(synopsis "Hold authenticated identities and their attributes")
(description "This package provides a standard interface for holding
authenticated identities and their attributes.")
(license license:asl2.0)))
(define-public go-github-com-jcmturner-gokrb5-v8
(package
(name "go-github-com-jcmturner-gokrb5-v8")
(version "8.4.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jcmturner/gokrb5")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0w9d1pa3r6qmdblk25bghf78ncs03l15l1sxnh4n536c356rzq4b"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/jcmturner/gokrb5/v8"
#:unpack-path "github.com/jcmturner/gokrb5"))
(native-inputs
(list go-github-com-stretchr-testify))
(propagated-inputs
(list go-github-com-gorilla-sessions
go-github-com-hashicorp-go-uuid
go-github-com-jcmturner-aescts-v2
go-github-com-jcmturner-dnsutils-v2
go-github-com-jcmturner-gofork
go-github-com-jcmturner-goidentity-v6
go-github-com-jcmturner-rpc-v2-mstypes
go-github-com-jcmturner-rpc-v2-ndr
go-golang-org-x-crypto
go-golang-org-x-net))
(home-page "https://github.com/jcmturner/gokrb5")
(synopsis "Pure Go Kerberos library for clients and services")
(description "This package provides a pure Go Kerberos library. It
features:
@itemize
@item Kerberos libraries for custom integration
@item Parsing Keytab files
@item Parsing krb5.conf files
@item Parsing client credentials cache files such as /tmp/krb5cc_$(id -u $(whoami))
@end itemize
On the client side, it provides a client that can authenticate to an SPNEGO
Kerberos authenticated web service, and the ability to change client's
password.
On the server side, the library provides a HTTP handler wrapper implements
SPNEGO Kerberos authentication, as well as a HTTP handler wrapper decodes
Microsoft AD PAC authorization data.")
(license license:asl2.0)))
(define-public go-github-com-jmespath-go-jmespath
(package
(name "go-github-com-jmespath-go-jmespath")
(version "0.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jmespath/go-jmespath")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "18zyr9nlywmwp3wpzcjxrgq9s9d2mmc6zg6xhsna00m663nkyc3n"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/jmespath/go-jmespath"))
(native-inputs
(list go-github-com-davecgh-go-spew
go-github-com-pmezard-go-difflib
go-github-com-stretchr-objx
go-gopkg-in-yaml-v2))
(home-page "https://github.com/jmespath/go-jmespath")
(synopsis "Golang implementation of JMESPath")
(description
"This package implements JMESPath, a query language for JSON. It
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")
(version "1.3.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/julienschmidt/httprouter")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1a6sy0ysqknsjssjh7qg1dqn21xmj9a36c57nrk7srfmab4ffmk1"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/julienschmidt/httprouter"))
(home-page "https://github.com/julienschmidt/httprouter")
(synopsis "High performance HTTP request router")
(description
"Package @code{httprouter} is a trie based high performance HTTP request
router.")
(license license:bsd-3)))
(define-public go-github-com-microcosm-cc-bluemonday
(package
(name "go-github-com-microcosm-cc-bluemonday")
(version "1.0.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/microcosm-cc/bluemonday")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "071ph097c1iwbcc33x6kblj9rxb1r4mp3qfkrj4qw5mg7qcqxydk"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/microcosm-cc/bluemonday"))
(propagated-inputs
(list go-github-com-chris-ramon-douceur
go-golang-org-x-net))
(home-page "https://github.com/microcosm-cc/bluemonday/")
(synopsis "HTML sanitizer")
(description "@code{bluemonday} is a HTML sanitizer implemented in Go.")
(license license:bsd-3)))
(define-public go-github-com-multiformats-go-multiaddr
(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
@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")
(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,
;; 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"))
(propagated-inputs
(list go-github-com-multiformats-go-multiaddr))
(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-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")
(version "0.3.0")
(home-page "https://github.com/nwidger/jsoncolor")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "13rd146pnj7qm70r1333gyd1f61x40nafxlpvdxlci9h7mx8c5p8"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/nwidger/jsoncolor"))
(native-inputs
(list go-github-com-fatih-color))
(synopsis "Colorized JSON marshalling and encoding")
(description
"@code{jsoncolor} is a drop-in replacement for @code{encoding/json}'s
@code{Marshal} and @code{MarshalIndent} functions and @code{Encoder} type
which produce colorized output using github.com/fatih/color.")
(license license:expat)))
(define-public go-github-com-opentracing-opentracing-go
(package
(name "go-github-com-opentracing-opentracing-go")
(version "1.2.0")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/opentracing/opentracing-go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "04rgdwl29kimp2wnm4dycnzp7941hvpj6wym85x23c6fclacm94h"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/opentracing/opentracing-go"))
(native-inputs
(list go-github-com-stretchr-testify))
(home-page "https://github.com/opentracing/opentracing-go")
(synopsis "OpenTracing API for Go")
(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-ice
(package
(name "go-github-com-pion-ice")
(version "0.7.18")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pion/ice/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "17108z4fkr9b2fxf5icxspgif29a40gi57bhp9a50mlfr36yv9vk"))))
(build-system go-build-system)
(arguments
(list
;; Source-only package
#:tests? #f
#:import-path "https://github.com/pion/ice"
#:phases
;; Failed to build and only requried for inheritance:
;;
;; cannot use a.net (type *vnet.Net) as type transport.Net in field value:
;; *vnet.Net does not implement transport.Net (wrong type for CreateDialer method)
;; have CreateDialer(*net.Dialer) vnet.Dialer
;; want CreateDialer(*net.Dialer) transport.Dialer
#~(modify-phases %standard-phases
(delete 'build))))
(native-inputs
(list go-github-com-stretchr-testify))
(propagated-inputs
(list go-github-com-google-uuid
go-github-com-pion-dtls-v2
go-github-com-pion-logging
go-github-com-pion-mdns
go-github-com-pion-randutil
go-github-com-pion-stun
go-github-com-pion-transport
go-github-com-pion-turn-v2
go-golang-org-x-net))
(home-page "https://github.com/pion/ice/")
(synopsis "Go implementation of ICE")
(description
"This package provides an implementation of @acronym{ICE, Interactive
Connectivity Establishment protocol}, specified in
@url{https://datatracker.ietf.org/doc/html/rfc8445, RFC8445}. It is used as a
part of @url{https://github.com/pion, Pion} WebRTC implementation.")
(license license:expat)))
(define-public go-github-com-pion-ice-v2
(package
(inherit go-github-com-pion-ice)
(name "go-github-com-pion-ice-v2")
(version "2.3.24")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pion/ice/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0mh7l31vv15gxpl61f22jwpc77b5l9wx4hbjv4h8cgmpb9911cv8"))))
(arguments
(list
#:tests? #f ;Tests require network access.
#:go go-1.21
#:import-path "github.com/pion/ice/v2"))
(propagated-inputs
(list go-github-com-google-uuid
go-github-com-pion-dtls-v2
go-github-com-pion-logging
go-github-com-pion-mdns
go-github-com-pion-randutil
go-github-com-pion-stun
go-github-com-pion-transport-v2
go-github-com-pion-turn-v2
go-golang-org-x-net))))
(define-public go-github-com-pion-mdns
(package
(name "go-github-com-pion-mdns")
(version "0.0.12")
(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 "18nz0vddxik3q11mn4z65zvrfhspxv0xymxv9w3kgk2kszwq2byy"))))
(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
#:unpack-path "github.com/pion/mdns"
#: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-mdns-v2
(package
(inherit go-github-com-pion-mdns)
(name "go-github-com-pion-mdns-v2")
(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"))))
(arguments
(substitute-keyword-arguments (package-arguments
go-github-com-pion-mdns)
((#:unpack-path flags ''())
"github.com/pion/mdns/v2")
((#:import-path flags ''())
"github.com/pion/mdns/v2")))))
(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-pion-turn
(package
(name "go-github-com-pion-turn")
(version "1.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pion/turn/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "16lkgmrlks0qdzbk8jj0c0j66qfxhb54cvzgrfn4imvm56dbxp2n"))))
(build-system go-build-system)
(arguments
(list
#:tests? #f ;Tests require network access.
#:import-path "github.com/pion/turn"))
(native-inputs
(list go-github-com-stretchr-testify))
(propagated-inputs
(list go-github-com-pion-logging
go-github-com-pion-stun
go-github-com-pion-transport
go-github-com-pkg-errors))
(home-page "https://github.com/pion/turn/")
(synopsis "API for building TURN clients and servers in Golang")
(description
"This package provides a toolkit for building @acronym{TURN, Traversal
Using Relays around NAT}, specified in
@url{https://datatracker.ietf.org/doc/html/rfc8656, RFC 8656}, servers and
clients.
@code{pion/turn} is an API for building STUN/TURN clients and servers, not a
binary you deploy then configure. It may require copying the examples and
making minor modifications to fit your need, no knowledge of Go is required
however.
The advantage of this is that you don't need to deal with complicated
configuration files, or custom APIs to modify the state of Pion TURN. After
you instantiate an instance of a Pion TURN server or client you interact with
it like any library. The quickest way to get started is to look at the
@url{https://github.com/pion/turn/blob/master/examples, examples} or
@url{https://godoc.org/github.com/pion/turn, GoDoc}.")
(license license:expat)))
(define-public go-github-com-pion-turn-v2
(package
(inherit go-github-com-pion-turn)
(name "go-github-com-pion-turn-v2")
(version "2.1.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pion/turn/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0iw7nvqsxpqy90k5a8mq3dyask272391m59cbiy30aak1y2wwaac"))))
(arguments
(substitute-keyword-arguments (package-arguments
go-github-com-pion-turn)
((#:import-path flags ''())
"github.com/pion/turn/v2")))
(propagated-inputs
(list go-github-com-pion-logging
go-github-com-pion-randutil
go-github-com-pion-stun
go-github-com-pion-transport-v2
go-golang-org-x-sys))))
(define-public go-github-com-pion-turn-v3
(package
(inherit go-github-com-pion-turn)
(name "go-github-com-pion-turn-v3")
(version "3.0.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pion/turn/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0l78m9ym0sv1zfalbv95lwblmr789fc53d957ph5mdznhjx89lyx"))))
(arguments
(substitute-keyword-arguments (package-arguments
go-github-com-pion-turn)
((#:import-path flags ''())
"github.com/pion/turn/v3")))
(propagated-inputs
(list go-github-com-pion-logging
go-github-com-pion-randutil
go-github-com-pion-stun-v2
go-github-com-pion-transport-v3
go-golang-org-x-sys))))
(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")
(version "1.13.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pkg/sftp")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0n35lzfrnrffjqy34ny6gxs27kq81s67ply6q8s1g19mhfzm6my7"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/pkg/sftp"))
(propagated-inputs (list go-golang-org-x-crypto go-github-com-kr-fs))
(native-inputs (list go-github-com-stretchr-testify))
(home-page "https://github.com/pkg/sftp")
(synopsis "SFTP implementation for Go")
(description
"This package provides an @acronym{SFTP, SSH File Transfer Protocol}
implementation, as described in
@url{https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt},
for Go.")
(license license:bsd-2)))
(define-public go-github-com-pquerna-cachecontrol
(package
(name "go-github-com-pquerna-cachecontrol")
(version "0.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pquerna/cachecontrol")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0d5zgv2w0sinh9m41pw3n015zzyabk7awgwwga7nmhjz452c9r5n"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/pquerna/cachecontrol"))
(native-inputs
(list go-github-com-stretchr-testify))
(home-page "https://github.com/pquerna/cachecontrol")
(synopsis "Golang HTTP Cache-Control Parser and Interpretation")
(description
"This package implements RFC 7234 Hypertext Transfer Protocol (HTTP/1.1):
Caching.")
(license license:asl2.0)))
(define-public go-github-com-puerkitobio-goquery
(package
(name "go-github-com-puerkitobio-goquery")
(version "1.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/PuerkitoBio/goquery")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0gh1d99l5xc9hvwa4j40pfq3y9vfyq52mnrz6bf1kw2r2zr2gbcc"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/PuerkitoBio/goquery"))
(propagated-inputs
(list go-github-com-andybalholm-cascadia go-golang-org-x-net))
(home-page "https://github.com/PuerkitoBio/goquery")
(synopsis "Features similar to jQuery to the Go language")
(description "@code{goquery} brings a syntax and a set of features similar
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.42.0")
(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 "0bdr48nbcjajmhx1h11qfl1i7myxqpyqqk5n21007xyqw13qhb8c"))))
(build-system go-build-system)
(arguments
(list
#: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-francoispqt-gojay
go-github-com-quic-go-qpack
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-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
(name "go-github-com-sourcegraph-jsonrpc2")
(version "0.1.0")
(home-page "https://github.com/sourcegraph/jsonrpc2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1dk0w32k96vxrwnmm24wqx337dn8ylch65qwrbc3wh7whw2xx71q"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/sourcegraph/jsonrpc2"))
(propagated-inputs
(list go-github-com-daviddengcn-go-colortext
go-github-com-gorilla-websocket
go-github-com-motemen-go-colorine))
(synopsis "Provides a client and server implementation of JSON-RPC 2.0")
(description
"Package jsonrpc2 provides a Go implementation of JSON-RPC 2.0.")
(license license:expat)))
(define-public go-github-com-tdewolff-minify-v2
(package
(name "go-github-com-tdewolff-minify-v2")
(version "2.12.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tdewolff/minify")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0qhslaq885zbqs83nvbi29yh09b89kkb6ycami8lz28wkwrlayap"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/tdewolff/minify/v2"
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'regenerate-hash
(lambda* (#:key import-path #:allow-other-keys)
(for-each
(lambda (dir)
(with-directory-excursion
(format #f "src/~a/~a" import-path dir)
(make-file-writable "hash.go")
(format #t "Generating `hash.go' for ~a...~%" dir)
(invoke "go" "generate")))
'("css" "html" "svg")))))))
(propagated-inputs
(list go-github-com-tdewolff-parse-v2))
(native-inputs
(list go-github-com-tdewolff-hasher
go-github-com-tdewolff-test))
(home-page "https://go.tacodewolff.nl/minify")
(synopsis "Go minifiers for web formats")
(description
"This package provides HTML5, CSS3, JS, JSON, SVG and XML minifiers and
an interface to implement any other minifier.")
(license license:expat)))
(define-public go-github-com-tdewolff-parse-v2
(package
(name "go-github-com-tdewolff-parse-v2")
(version "2.6.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tdewolff/parse")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1dqki9ima079k9a3l72igmx5dml8qsl9z8rzw8a433f4gjhlv320"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/tdewolff/parse/v2"
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'regenerate-hash
(lambda* (#:key import-path #:allow-other-keys)
(for-each
(lambda (dir)
(with-directory-excursion
(format #f "src/~a/~a" import-path dir)
(make-file-writable "hash.go")
(format #t "Generating `hash.go' for ~a...~%" dir)
(invoke "go" "generate")))
'("css" "html")))))))
(native-inputs
(list go-github-com-tdewolff-hasher
go-github-com-tdewolff-test))
(home-page "https://github.com/tdewolff/parse")
(synopsis "Go parsers for web formats")
(description
"This package contains several lexers and parsers written in Go.")
(license license:expat)))
(define-public go-github-com-tv42-httpunix
(let ((commit "2ba4b9c3382c77e7b9ea89d00746e6111d142a22")
(revision "0"))
(package
(name "go-github-com-tv42-httpunix")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tv42/httpunix")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0xbwpip2hsfhd2kd878jn5ndl8y1i9658lggha4x3xb5m1rsds9w"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/tv42/httpunix"))
(home-page "https://github.com/tv42/httpunix")
(synopsis "Go library to talk HTTP over Unix domain sockets")
(description "This package is a Go library to talk HTTP over Unix domain
sockets.")
(license license:expat))))
(define-public go-github-com-ugorji-go-codec
(package
(name "go-github-com-ugorji-go-codec")
(version "1.2.12")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ugorji/go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "11j0sd7kli2bh2npfr2znnvdjsk118rs8khqzfdp6pb5jm0l20ib"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/ugorji/go/codec"
#:unpack-path "github.com/ugorji/go"
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'remove-benchmarks
(lambda* (#:key import-path #:allow-other-keys)
(delete-file-recursively (string-append "src/"
import-path
"/bench")))))))
(propagated-inputs (list go-golang-org-x-tools))
(home-page "https://github.com/ugorji/go")
(synopsis "Codec and encoding library for various serialization formats")
(description
"This package provides a high performance and feature rich codec and
encoding library for the MessagePack, CBOR, JSON and the Binc formats.")
(license license:expat)))
(define-public go-github-com-valyala-fasthttp
(package
(name "go-github-com-valyala-fasthttp")
(version "1.39.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/valyala/fasthttp")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "12qwx0yk7wjj25v4fswgmj28r69gk94kqdmzavca8k9f0yznniz1"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/valyala/fasthttp"
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs #:allow-other-keys #:rest args)
(unless
;; Tests hang forever with gccgo.
(false-if-exception (search-input-file inputs "/bin/gccgo"))
(apply (assoc-ref %standard-phases 'check) args)))))))
(propagated-inputs
(list go-github-com-andybalholm-brotli
go-github-com-klauspost-compress
go-github-com-valyala-bytebufferpool
go-github-com-valyala-tcplisten
go-golang-org-x-crypto
go-golang-org-x-net
go-golang-org-x-sys
go-golang-org-x-text))
(home-page "https://github.com/valyala/fasthttp")
(synopsis "Provides fast HTTP server and client API")
(description
"This package provides a Go module @code{fasthttp} which may be used as
replacement for native @code{net/http} module.")
(license license:expat)))
(define-public go-github-com-whyrusleeping-json-filter
(let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
(revision "0"))
(package
(name "go-github-com-whyrusleeping-json-filter")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/whyrusleeping/json-filter")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0cai0drvx4c8j686l908vpcsz3mw3vxi3ziz94b0f3c5ylpj07j7"))))
(build-system go-build-system)
(arguments
'(#:import-path
"github.com/whyrusleeping/json-filter"))
(home-page "https://github.com/whyrusleeping/json-filter")
(synopsis "Library to query JSON objects marshalled into map[string]interface")
(description "A library to query JSON objects marshalled into
@command{map[string]interface{}}.")
(license license:expat))))
(define-public go-github-com-xeipuuv-gojsonpointer
(let ((commit "4e3ac2762d5f479393488629ee9370b50873b3a6")
(revision "0"))
(package
(name "go-github-com-xeipuuv-gojsonpointer")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xeipuuv/gojsonpointer")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "13y6iq2nzf9z4ls66bfgnnamj2m3438absmbpqry64bpwjfbsi9q"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/xeipuuv/gojsonpointer"))
(home-page "https://github.com/xeipuuv/gojsonpointer")
(synopsis "Implementation of JSON Pointer for Go")
(description
"This package provides an implementation of JSON Pointer for the Go
programming language.")
(license license:asl2.0))))
(define-public go-github-com-xeipuuv-gojsonreference
(let ((commit "bd5ef7bd5415a7ac448318e64f11a24cd21e594b")
(revision "0"))
(package
(name "go-github-com-xeipuuv-gojsonreference")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xeipuuv/gojsonreference")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1xby79padc7bmyb8rfbad8wfnfdzpnh51b1n8c0kibch0kwc1db5"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/xeipuuv/gojsonreference"))
(propagated-inputs
(list go-github-com-xeipuuv-gojsonpointer))
(home-page "https://github.com/xeipuuv/gojsonreference")
(synopsis "Implementation of JSON Reference for Go")
(description
"This package provides an implementation of JSON Reference for the Go
programming language.")
(license license:asl2.0))))
(define-public go-github-com-xeipuuv-gojsonschema
(let ((commit "6b67b3fab74d992bd07f72550006ab2c6907c416")
(revision "0"))
(package
(name "go-github-com-xeipuuv-gojsonschema")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xeipuuv/gojsonschema")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1q937a6q7canlr3dllqdw0qwa6z2fpwn1w9kycavx8jmwh6q3f69"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/xeipuuv/gojsonschema"
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-failing-tests
(lambda* (#:key import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
(substitute* "schema_test.go"
(("\\{\"phase\": \"remote ref, " all)
(string-append "// " all))
(("\\{\"phase\": \"valid definition" all)
(string-append "// " all))
(("\\{\"phase\": \"invalid definition" all)
(string-append "// " all)))))))))
(native-inputs
(list go-github-com-stretchr-testify))
(propagated-inputs
(list go-github-com-xeipuuv-gojsonreference
go-github-com-xeipuuv-gojsonpointer))
(home-page "https://github.com/xeipuuv/gojsonschema")
(synopsis "Implementation of JSON Schema for Go")
(description
"This package provides an implementation of JSON Schema for the Go
programming language, which supports draft-04, draft-06 and draft-07.")
(license license:asl2.0))))
(define-public go-gopkg-in-square-go-jose-v2
(package
(name "go-gopkg-in-square-go-jose-v2")
(version "2.6.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/square/go-jose")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1b1nhqxfmhzwrfk7pkvp2w3z3d0pf5ir00vizmy2d4xdbnldn70r"))))
(build-system go-build-system)
(arguments
(list #:import-path "gopkg.in/square/go-jose.v2"))
(propagated-inputs
(list go-golang-org-x-crypto))
(native-inputs
(list go-github-com-google-go-cmp-cmp
go-github-com-stretchr-testify))
(home-page "https://gopkg.in/square/go-jose.v2")
(synopsis "Implementation of JOSE standards (JWE, JWS, JWT) in Go")
(description
"This package aims to provide an implementation of the Javascript Object
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)
(name "go-minify")
(arguments
(substitute-keyword-arguments
(package-arguments go-github-com-tdewolff-minify-v2)
((#:install-source? _ #t) #f)
((#:import-path _ "github.com/tdewolff/minify/v2")
"github.com/tdewolff/minify/cmd/minify")))
(inputs
(list go-github-com-djherbis-atime
go-github-com-dustin-go-humanize
go-github-com-fsnotify-fsnotify
go-github-com-matryer-try
go-github-com-spf13-pflag))
(description "This package provides a CLI binary executible built from
go-github-com-tdewolff-minify-v2 source.")))
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar
;;; functionality or similar names.
;;;