;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Pierre-Antoine Rouby ;;; Copyright © 2020 Jack Hill ;;; Copyright © 2020 Martin Becze ;;; Copyright © 2020 Nicolas Goaziou ;;; Copyright © 2020 Oleg Pykhalov ;;; Copyright © 2020 Ryan Prior ;;; Copyright © 2020-2022 Efraim Flashner ;;; Copyright © 2021 Collin J. Doering ;;; Copyright © 2021 Raghav Gururajan ;;; Copyright © 2021 Sarah Morgensen ;;; Copyright © 2022 Adam Kandur ;;; Copyright © 2022 Giacomo Leidi ;;; Copyright © 2022 jgart via Guix-patches via ;;; Copyright © 2022 muradm ;;; Copyright © 2022, 2023 Sharlatan Hellseher ;;; Copyright © 2023 Hilton Chain ;;; Copyright © 2023 Katherine Cox-Buday ;;; Copyright © 2023 Nicolas Graves ;;; ;;; 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 . (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 (gnu packages) #:use-module (gnu packages golang) #:use-module (gnu packages golang-check) #:use-module (gnu packages web)) ;;; Commentary: ;;; ;;; Golang modules (libraries) related to HTML, CSS, SCSS, JavaScript, JSON, ;;; Web-framework, REST-API or similar functionality. ;;; ;;; Please: Try to add new module packages in alphabetic order. ;;; ;;; Code: (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-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))) (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 '(#:import-path "github.com/francoispqt/gojay")) (native-inputs (list go-github-com-stretchr-testify)) (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.") (home-page "https://github.com/francoispqt/gojay") (license license:expat))) (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-goccy-go-json (package (name "go-github-com-goccy-go-json") (version "0.9.10") (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 "1bg8p4c6r8r0kixdxv2m8xmdsmb1zl5sd8czswpccldjk3c358wp")))) (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-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-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-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-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-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-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-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-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)) (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-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))) ;;; ;;; 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. ;;;