(define-module (zb packages pijul)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix gexp)
  #:use-module (guix git-download)
  #:use-module (guix build-system cargo)
  #:use-module (gnu packages)
  #:use-module (gnu packages crates-io)
  #:use-module (gnu packages crypto)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages tls))

(define-public rust-thrussh-config-0.5
  (package
    (name "rust-thrussh-config")
    (version "0.5.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "thrussh-config" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1ygm5vdy180gslgmbd0v722ap451pw8cwaba0g0dzx5gg3cl9h37"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-dirs-next" ,rust-dirs-next-2)
                       ("rust-futures" ,rust-futures-0.3)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-thiserror" ,rust-thiserror-1)
                       ("rust-tokio" ,rust-tokio-1)
                       ("rust-whoami" ,rust-whoami-1))))
    (home-page "https://nest.pijul.com/pijul/thrussh")
    (synopsis
     "Utilities to parse .ssh/config files, including helpers to implement ProxyCommand in Thrussh.")
    (description
     "Utilities to parse .ssh/config files, including helpers to implement
@code{ProxyCommand} in Thrussh.")
    (license license:asl2.0)))

(define-public rust-thrussh-0.33
  (package
    (name "rust-thrussh")
    (version "0.33.5")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "thrussh" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1y1nhpg9l8jwjv59am9kmf9gib2j58c1qm36dvgq7pwsi8il0rcf"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-bitflags" ,rust-bitflags-1)
                       ("rust-byteorder" ,rust-byteorder-1)
                       ("rust-cryptovec" ,rust-cryptovec-0.6)
                       ("rust-digest" ,rust-digest-0.9)
                       ("rust-flate2" ,rust-flate2-1)
                       ("rust-futures" ,rust-futures-0.3)
                       ("rust-generic-array" ,rust-generic-array-0.14)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-openssl" ,rust-openssl-0.10)
                       ("rust-rand" ,rust-rand-0.8)
                       ("rust-sha2" ,rust-sha2-0.9)
                       ("rust-thiserror" ,rust-thiserror-1)
                       ("rust-thrussh-keys" ,rust-thrussh-keys-0.21)
                       ("rust-thrussh-libsodium" ,rust-thrussh-libsodium-0.2)
                       ("rust-tokio" ,rust-tokio-1))))
    (home-page "https://pijul.org/thrussh")
    (synopsis "A client and server SSH library.")
    (description "This package provides a client and server SSH library.")
    (license license:asl2.0)))

(define-public rust-thrussh-config-0.6
  (package
    (name "rust-thrussh-config")
    (version "0.6.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "thrussh-config" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "08k6r947q5xx73y29s24snwlzym5x7v2drdl5y794957i6mlm5zs"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-dirs-next" ,rust-dirs-next-2)
                       ("rust-futures" ,rust-futures-0.3)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-thiserror" ,rust-thiserror-1)
                       ("rust-tokio" ,rust-tokio-1)
                       ("rust-whoami" ,rust-whoami-1))))
    (home-page "https://nest.pijul.com/pijul/thrussh")
    (synopsis
     "Utilities to parse .ssh/config files, including helpers to implement ProxyCommand in Thrussh.")
    (description
     "Utilities to parse .ssh/config files, including helpers to implement
@code{ProxyCommand} in Thrussh.")
    (license license:asl2.0)))

(define-public rust-bcrypt-pbkdf-0.10
  (package
    (name "rust-bcrypt-pbkdf")
    (version "0.10.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "bcrypt-pbkdf" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "18pjhsy3m2v0silsp4mjzz8i92zrpqxk9b059zrnk1w8zvhw5ska"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-blowfish" ,rust-blowfish-0.9)
                       ("rust-pbkdf2" ,rust-pbkdf2-0.12)
                       ("rust-sha2" ,rust-sha2-0.10)
                       ("rust-zeroize" ,rust-zeroize-1))))
    (home-page
     "https://github.com/RustCrypto/password-hashes/tree/master/bcrypt-pbkdf")
    (synopsis "bcrypt-pbkdf password-based key derivation function")
    (description "bcrypt-pbkdf password-based key derivation function")
    (license (list license:expat license:asl2.0))))

(define-public rust-thrussh-keys-0.22
  (package
    (name "rust-thrussh-keys")
    (version "0.22.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "thrussh-keys" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1fsr8ank8vciyfdr27b56gnwasjrvadxkklv6w7dn22c7sqmjgf4"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-aes" ,rust-aes-0.7)
                       ("rust-bcrypt-pbkdf" ,rust-bcrypt-pbkdf-0.10)
                       ("rust-bit-vec" ,rust-bit-vec-0.6)
                       ("rust-block-modes" ,rust-block-modes-0.8)
                       ("rust-byteorder" ,rust-byteorder-1)
                       ("rust-cryptovec" ,rust-cryptovec-0.6)
                       ("rust-data-encoding" ,rust-data-encoding-2)
                       ("rust-dirs" ,rust-dirs-3)
                       ("rust-futures" ,rust-futures-0.3)
                       ("rust-hmac" ,rust-hmac-0.11)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-md5" ,rust-md5-0.7)
                       ("rust-num-bigint" ,rust-num-bigint-0.4)
                       ("rust-num-integer" ,rust-num-integer-0.1)
                       ("rust-openssl" ,rust-openssl-0.10)
                       ("rust-p256" ,rust-p256-0.13)
                       ("rust-pbkdf2" ,rust-pbkdf2-0.8)
                       ("rust-rand" ,rust-rand-0.8)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-derive" ,rust-serde-derive-1)
                       ("rust-sha2" ,rust-sha2-0.9)
                       ("rust-thiserror" ,rust-thiserror-1)
                       ("rust-thrussh-libsodium" ,rust-thrussh-libsodium-0.2)
                       ("rust-tokio" ,rust-tokio-1)
                       ("rust-tokio-stream" ,rust-tokio-stream-0.1)
                       ("rust-yasna" ,rust-yasna-0.4))))
    (home-page "https://pijul.org/thrussh")
    (synopsis
     "Deal with SSH keys: load them, decrypt them, call an SSH agent.")
    (description
     "Deal with SSH keys: load them, decrypt them, call an SSH agent.")
    (license license:asl2.0)))

(define-public rust-thrussh-0.34
  (package
    (name "rust-thrussh")
    (version "0.34.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "thrussh" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "00y5xfascb6vhmvnlqkpgfx8ql1p04sxk1ymkxx6vs2g30sgddqf"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-bitflags" ,rust-bitflags-1)
                       ("rust-byteorder" ,rust-byteorder-1)
                       ("rust-cryptovec" ,rust-cryptovec-0.6)
                       ("rust-digest" ,rust-digest-0.9)
                       ("rust-flate2" ,rust-flate2-1)
                       ("rust-futures" ,rust-futures-0.3)
                       ("rust-generic-array" ,rust-generic-array-0.14)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-openssl" ,rust-openssl-0.10)
                       ("rust-rand" ,rust-rand-0.8)
                       ("rust-sha2" ,rust-sha2-0.9)
                       ("rust-thiserror" ,rust-thiserror-1)
                       ("rust-thrussh-keys" ,rust-thrussh-keys-0.22)
                       ("rust-thrussh-libsodium" ,rust-thrussh-libsodium-0.2)
                       ("rust-tokio" ,rust-tokio-1))))
    (home-page "https://pijul.org/thrussh")
    (synopsis "A client and server SSH library.")
    (description "This package provides a client and server SSH library.")
    (license license:asl2.0)))

(define-public rust-pijul-remote-1
  (package
    (name "rust-pijul-remote")
    (version "1.0.0-beta.6")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "pijul-remote" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1pxk6bv3q9ppqivj6rdy2lgv444zxxkqs8jgb1zq3412j6gpsa6d"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
                       ("rust-async-trait" ,rust-async-trait-0.1)
                       ("rust-byteorder" ,rust-byteorder-1)
                       ("rust-bytes" ,rust-bytes-1)
                       ("rust-dirs-next" ,rust-dirs-next-2)
                       ("rust-futures" ,rust-futures-0.3)
                       ("rust-futures-util" ,rust-futures-util-0.3)
                       ("rust-keyring" ,rust-keyring-2)
                       ("rust-lazy-static" ,rust-lazy-static-1)
                       ("rust-libpijul" ,rust-libpijul-1)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-pijul-config" ,rust-pijul-config-0.0.1)
                       ("rust-pijul-identity" ,rust-pijul-identity-0.0.1)
                       ("rust-pijul-interaction" ,rust-pijul-interaction-0.0.1)
                       ("rust-pijul-repository" ,rust-pijul-repository-0.0.1)
                       ("rust-regex" ,rust-regex-1)
                       ("rust-reqwest" ,rust-reqwest-0.11)
                       ("rust-sanakirja" ,rust-sanakirja-1)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-derive" ,rust-serde-derive-1)
                       ("rust-serde-json" ,rust-serde-json-1)
                       ("rust-thrussh" ,rust-thrussh-0.34)
                       ("rust-thrussh-config" ,rust-thrussh-config-0.6)
                       ("rust-thrussh-keys" ,rust-thrussh-keys-0.22)
                       ("rust-tokio" ,rust-tokio-1)
                       ("rust-url" ,rust-url-2))))
    (home-page "https://nest.pijul.com/pijul/pijul")
    (synopsis "Functionality to communicate with a pijul repository remotely")
    (description
     "Functionality to communicate with a pijul repository remotely")
    (license license:gpl2)))

(define-public rust-validator-types-0.15
  (package
    (name "rust-validator-types")
    (version "0.15.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "validator_types" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "0ad3ilkwdx1vcwi7vbapkz8kqp9gdrfb34qlzjmlfs19jd1g7pfj"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
                       ("rust-syn" ,rust-syn-1))))
    (home-page "https://github.com/Keats/validator")
    (synopsis "Basic type for validator and validator_derive")
    (description "Basic type for validator and validator_derive")
    (license license:expat)))

(define-public rust-validator-derive-0.15
  (package
    (name "rust-validator-derive")
    (version "0.15.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "validator_derive" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "08vr07anpvgc9i18hyxi4y9si22kl8fqbkn4lrjdssrbrzldazpa"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-if-chain" ,rust-if-chain-1)
                       ("rust-lazy-static" ,rust-lazy-static-1)
                       ("rust-proc-macro-error" ,rust-proc-macro-error-1)
                       ("rust-proc-macro2" ,rust-proc-macro2-1)
                       ("rust-quote" ,rust-quote-1)
                       ("rust-regex" ,rust-regex-1)
                       ("rust-syn" ,rust-syn-1)
                       ("rust-validator-types" ,rust-validator-types-0.15))))
    (home-page "https://github.com/Keats/validator")
    (synopsis "Macros 1.1 implementation of #[derive(Validate)]")
    (description "Macros 1.1 implementation of #[derive(Validate)]")
    (license license:expat)))

(define-public rust-unic-ucd-common-0.9
  (package
    (name "rust-unic-ucd-common")
    (version "0.9.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "unic-ucd-common" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1bglvzn6rs01v0d29898vg2y3v3cgj3h1gsrbjp1mypa1f8qpdz9"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-unic-char-property" ,rust-unic-char-property-0.9)
                       ("rust-unic-char-range" ,rust-unic-char-range-0.9)
                       ("rust-unic-ucd-version" ,rust-unic-ucd-version-0.9))))
    (home-page "https://github.com/open-i18n/rust-unic/")
    (synopsis "UNIC — Unicode Character Database — Common Properties")
    (description "UNIC — Unicode Character Database — Common Properties")
    (license (list license:expat license:asl2.0))))

(define-public rust-oncemutex-0.1
  (package
    (name "rust-oncemutex")
    (version "0.1.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "oncemutex" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1qmzibgx46k3xfh0mbljp46cfy9vx62frrx5x1ph18zlcvj1vla4"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t))
    (home-page "https://github.com/reem/rust-once-mutex.git")
    (synopsis
     "A mutex providing one-time synchronized access, then safe unsynchronized access.")
    (description
     "This package provides a mutex providing one-time synchronized access, then safe
unsynchronized access.")
    (license (list license:expat license:asl2.0))))

(define-public rust-regex-cache-0.2
  (package
    (name "rust-regex-cache")
    (version "0.2.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "regex-cache" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "14w7h1rl68fzzvavig18hf184macxcypqsrv6m7vkf23jzb64yrg"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-lru-cache" ,rust-lru-cache-0.1)
                       ("rust-oncemutex" ,rust-oncemutex-0.1)
                       ("rust-regex" ,rust-regex-1)
                       ("rust-regex-syntax" ,rust-regex-syntax-0.6))))
    (home-page "https://github.com/1aim/rust-regex-cache")
    (synopsis "Lazy and cached regular expressions.")
    (description "Lazy and cached regular expressions.")
    (license license:expat)))

(define-public rust-phonenumber-0.3
  (package
    (name "rust-phonenumber")
    (version "0.3.3+8.13.9")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "phonenumber" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "01ndi2a82vlnr81lgfbg9gb2akyp3c1jlcw9kl21rw74i1i3wpv3"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-bincode" ,rust-bincode-1)
                       ("rust-bincode" ,rust-bincode-1)
                       ("rust-either" ,rust-either-1)
                       ("rust-fnv" ,rust-fnv-1)
                       ("rust-itertools" ,rust-itertools-0.10)
                       ("rust-lazy-static" ,rust-lazy-static-1)
                       ("rust-nom" ,rust-nom-7)
                       ("rust-quick-xml" ,rust-quick-xml-0.28)
                       ("rust-quick-xml" ,rust-quick-xml-0.28)
                       ("rust-regex" ,rust-regex-1)
                       ("rust-regex" ,rust-regex-1)
                       ("rust-regex-cache" ,rust-regex-cache-0.2)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-derive" ,rust-serde-derive-1)
                       ("rust-serde-derive" ,rust-serde-derive-1)
                       ("rust-strum" ,rust-strum-0.24)
                       ("rust-thiserror" ,rust-thiserror-1)
                       ("rust-thiserror" ,rust-thiserror-1))))
    (home-page "https://github.com/whisperfish/rust-phonenumber")
    (synopsis
     "Library for parsing, formatting and validating international phone numbers.")
    (description
     "Library for parsing, formatting and validating international phone numbers.")
    (license license:asl2.0)))

(define-public rust-card-validate-2
  (package
    (name "rust-card-validate")
    (version "2.3.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "card-validate" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "075kamy7wcmsn5fshs6b78lqvihk3bm0i9awjrlci60wnrp71538"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-lazy-static" ,rust-lazy-static-1)
                       ("rust-regex" ,rust-regex-1))))
    (home-page "https://github.com/valeriansaliou/rs-card-validate")
    (synopsis "Rust card validate detects and validates credit card numbers")
    (description
     "Rust card validate detects and validates credit card numbers")
    (license license:expat)))

(define-public rust-validator-0.15
  (package
    (name "rust-validator")
    (version "0.15.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "validator" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1mgfpwry40fcsfabx7vziy0a7j9kxn6b49mvbv1hy770j09hlyzh"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-card-validate" ,rust-card-validate-2)
                       ("rust-idna" ,rust-idna-0.2)
                       ("rust-indexmap" ,rust-indexmap-1)
                       ("rust-lazy-static" ,rust-lazy-static-1)
                       ("rust-phonenumber" ,rust-phonenumber-0.3)
                       ("rust-regex" ,rust-regex-1)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-derive" ,rust-serde-derive-1)
                       ("rust-serde-json" ,rust-serde-json-1)
                       ("rust-unic-ucd-common" ,rust-unic-ucd-common-0.9)
                       ("rust-url" ,rust-url-2)
                       ("rust-validator-derive" ,rust-validator-derive-0.15))))
    (home-page "https://github.com/Keats/validator")
    (synopsis
     "Common validation functions (email, url, length, ...) and trait - to be used with `validator_derive`")
    (description
     "Common validation functions (email, url, length, ...) and trait - to be used
with `validator_derive`")
    (license license:expat)))

(define-public rust-libsodium-sys-0.2
  (package
    (name "rust-libsodium-sys")
    (version "0.2.7")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "libsodium-sys" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1zcjka23grayr8kjrgbada6vwagp0kkni9m45v0gpbanrn3r6xvb"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-cc" ,rust-cc-1)
                       ("rust-libc" ,rust-libc-0.2)
                       ("rust-libc" ,rust-libc-0.2)
                       ("rust-pkg-config" ,rust-pkg-config-0.3)
                       ("rust-walkdir" ,rust-walkdir-2))))
    (home-page "https://github.com/sodiumoxide/sodiumoxide.git")
    (synopsis "FFI binding to libsodium")
    (description "FFI binding to libsodium")
    (license (list license:expat license:asl2.0))))

(define-public rust-thrussh-libsodium-0.2
  (package
    (name "rust-thrussh-libsodium")
    (version "0.2.2")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "thrussh-libsodium" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1r0nwlq601xv5a9vabrwkvj1mffc03k1c9yqh4rdhdarwqvxd14r"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-lazy-static" ,rust-lazy-static-1)
                       ("rust-libc" ,rust-libc-0.2)
                       ("rust-libsodium-sys" ,rust-libsodium-sys-0.2)
                       ("rust-pkg-config" ,rust-pkg-config-0.3)
                       ("rust-vcpkg" ,rust-vcpkg-0.2))))
    (home-page "https://nest.pijul.com/pijul/thrussh")
    (synopsis "Straightforward bindings to libsodium")
    (description "Straightforward bindings to libsodium")
    (license (list license:asl2.0 license:expat))))

(define-public rust-cryptovec-0.6
  (package
    (name "rust-cryptovec")
    (version "0.6.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "cryptovec" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1pqb2g1n3sx0d2cjiy06amcr2wlf9izwb4jj68nk5cmvlq9zmiyc"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-libc" ,rust-libc-0.2)
                       ("rust-winapi" ,rust-winapi-0.3))))
    (home-page "https://pijul.org/cryptovec")
    (synopsis "A vector which zeroes its memory on clears and reallocations.")
    (description
     "This package provides a vector which zeroes its memory on clears and
reallocations.")
    (license license:asl2.0)))

(define-public rust-zeroize-1
  (package
    (name "rust-zeroize")
    (version "1.3.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "zeroize" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1z8yix823b6lz878qwg6bvwhg3lb0cbw3c9yij9p8mbv7zdzfmj7"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-zeroize-derive" ,rust-zeroize-derive-1))))
    (home-page "https://github.com/RustCrypto/utils/tree/master/zeroize")
    (synopsis "Securely clear secrets from memory with a simple trait built on
stable Rust primitives which guarantee memory is zeroed using an
operation will not be 'optimized away' by the compiler.
Uses a portable pure Rust implementation that works everywhere,
even WASM!
")
    (description
     "Securely clear secrets from memory with a simple trait built on stable Rust
primitives which guarantee memory is zeroed using an operation will not be
optimized away by the compiler.  Uses a portable pure Rust implementation that
works everywhere, even WASM!")
    (license (list license:asl2.0 license:expat))))

(define-public rust-blowfish-0.8
  (package
    (name "rust-blowfish")
    (version "0.8.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "blowfish" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1ax736islxcbghc2lqq4vy7zn6qdigrls71lwg11m3743pyg6gzy"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-byteorder" ,rust-byteorder-1)
                       ("rust-cipher" ,rust-cipher-0.3)
                       ("rust-opaque-debug" ,rust-opaque-debug-0.3))))
    (home-page "https://github.com/RustCrypto/block-ciphers")
    (synopsis "Blowfish block cipher")
    (description "Blowfish block cipher")
    (license (list license:expat license:asl2.0))))

(define-public rust-bcrypt-pbkdf-0.6
  (package
    (name "rust-bcrypt-pbkdf")
    (version "0.6.2")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "bcrypt-pbkdf" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1ms9c5z90n5szx5nbxrqaihny5fs3sl6a1pm3szr5g86jlxw0f3w"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-blowfish" ,rust-blowfish-0.8)
                       ("rust-crypto-mac" ,rust-crypto-mac-0.11)
                       ("rust-pbkdf2" ,rust-pbkdf2-0.8)
                       ("rust-sha2" ,rust-sha2-0.9)
                       ("rust-zeroize" ,rust-zeroize-1))))
    (home-page
     "https://github.com/RustCrypto/password-hashes/tree/master/bcrypt-pbkdf")
    (synopsis "bcrypt-pbkdf password-based key derivation function")
    (description "bcrypt-pbkdf password-based key derivation function")
    (license (list license:expat license:asl2.0))))

(define-public rust-thrussh-keys-0.21
  (package
    (name "rust-thrussh-keys")
    (version "0.21.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "thrussh-keys" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1azmv32m5jpxsflj4dq62i84mv2cavc354r8yy98vc9j54dcab57"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-aes" ,rust-aes-0.7)
                       ("rust-bcrypt-pbkdf" ,rust-bcrypt-pbkdf-0.6)
                       ("rust-bit-vec" ,rust-bit-vec-0.6)
                       ("rust-block-modes" ,rust-block-modes-0.8)
                       ("rust-byteorder" ,rust-byteorder-1)
                       ("rust-cryptovec" ,rust-cryptovec-0.6)
                       ("rust-data-encoding" ,rust-data-encoding-2)
                       ("rust-dirs" ,rust-dirs-3)
                       ("rust-futures" ,rust-futures-0.3)
                       ("rust-hmac" ,rust-hmac-0.11)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-md5" ,rust-md5-0.7)
                       ("rust-num-bigint" ,rust-num-bigint-0.4)
                       ("rust-num-integer" ,rust-num-integer-0.1)
                       ("rust-openssl" ,rust-openssl-0.10)
                       ("rust-pbkdf2" ,rust-pbkdf2-0.8)
                       ("rust-rand" ,rust-rand-0.8)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-derive" ,rust-serde-derive-1)
                       ("rust-sha2" ,rust-sha2-0.9)
                       ("rust-thiserror" ,rust-thiserror-1)
                       ("rust-thrussh-libsodium" ,rust-thrussh-libsodium-0.2)
                       ("rust-tokio" ,rust-tokio-1)
                       ("rust-tokio-stream" ,rust-tokio-stream-0.1)
                       ("rust-yasna" ,rust-yasna-0.4))))
    (home-page "https://pijul.org/thrussh")
    (synopsis
     "Deal with SSH keys: load them, decrypt them, call an SSH agent.")
    (description
     "Deal with SSH keys: load them, decrypt them, call an SSH agent.")
    (license license:asl2.0)))

(define-public rust-rlimit-0.9
  (package
    (name "rust-rlimit")
    (version "0.9.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "rlimit" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "13mb3ligflqb4h7m76pkyc8z5pswpc38fcl6qm1lvp2jls3rv8pq"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
    (home-page "https://github.com/Nugine/rlimit/")
    (synopsis "Resource limits")
    (description "Resource limits")
    (license license:expat)))

(define-public rust-pijul-repository-0.0.1
  (package
    (name "rust-pijul-repository")
    (version "0.0.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "pijul-repository" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "06vl6id0amw1pxfhj6m34mvr171czikph8g21xg34k7c263maiq4"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
                       ("rust-libpijul" ,rust-libpijul-1)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-pijul-config" ,rust-pijul-config-0.0.1)
                       ("rust-rlimit" ,rust-rlimit-0.9)
                       ("rust-toml" ,rust-toml-0.7))))
    (home-page "https://nest.pijul.com/pijul/pijul")
    (synopsis "Functionality for interacting with a pijul repository")
    (description "Functionality for interacting with a pijul repository")
    (license license:gpl2)))

(define-public rust-vt100-0.15
  (package
    (name "rust-vt100")
    (version "0.15.2")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "vt100" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1pklc8y984axmxr0cd363srr2d27wd5rj15xlcmkjznvy0xqdkc4"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-itoa" ,rust-itoa-1)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-unicode-width" ,rust-unicode-width-0.1)
                       ("rust-vte" ,rust-vte-0.11))))
    (home-page "https://github.com/doy/vt100-rust")
    (synopsis "Library for parsing terminal data")
    (description "Library for parsing terminal data")
    (license license:expat)))

(define-public rust-indicatif-0.17
  (package
    (name "rust-indicatif")
    (version "0.17.8")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "indicatif" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "18xyqxw9i5x4sbpzckhfz3nm984iq9r7nbi2lk76nz888n7mlfkn"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-console" ,rust-console-0.15)
                       ("rust-futures-core" ,rust-futures-core-0.3)
                       ("rust-instant" ,rust-instant-0.1)
                       ("rust-number-prefix" ,rust-number-prefix-0.4)
                       ("rust-portable-atomic" ,rust-portable-atomic-1)
                       ("rust-rayon" ,rust-rayon-1)
                       ("rust-tokio" ,rust-tokio-1)
                       ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
                       ("rust-unicode-width" ,rust-unicode-width-0.1)
                       ("rust-vt100" ,rust-vt100-0.15))))
    (home-page "https://github.com/console-rs/indicatif")
    (synopsis "A progress bar and cli reporting library for Rust")
    (description
     "This package provides a progress bar and cli reporting library for Rust")
    (license license:expat)))

(define-public rust-duplicate-1
  (package
    (name "rust-duplicate")
    (version "1.0.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "duplicate" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1jrh28a3g9xw0w9v21y92d4k08lgr1ffg8mjhw2h67h6r5mfcy6y"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-heck" ,rust-heck-0.4)
                       ("rust-proc-macro-error" ,rust-proc-macro-error-1))))
    (home-page "https://github.com/Emoun/duplicate")
    (synopsis
     "Provides macros for duplication of code with variable substitution.")
    (description
     "This package provides macros for duplication of code with variable substitution.")
    (license (list license:expat license:asl2.0))))

(define-public rust-pijul-interaction-0.0.1
  (package
    (name "rust-pijul-interaction")
    (version "0.0.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "pijul-interaction" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "0vv1z0flsgvf09y18sv2jbk9sn0rllka15wdskpv9ziydp9xr1h7"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-dialoguer" ,rust-dialoguer-0.10)
                       ("rust-duplicate" ,rust-duplicate-1)
                       ("rust-indicatif" ,rust-indicatif-0.17)
                       ("rust-lazy-static" ,rust-lazy-static-1)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-pijul-config" ,rust-pijul-config-0.0.1)
                       ("rust-thiserror" ,rust-thiserror-1))))
    (home-page "https://nest.pijul.com/pijul/pijul")
    (synopsis
     "Human friendly input/output (progress bars, passwords etc) for contexts such as terminals or GUIs")
    (description
     "Human friendly input/output (progress bars, passwords etc) for contexts such as
terminals or GUIs")
    (license license:gpl2)))

(define-public rust-pijul-identity-0.0.1
  (package
    (name "rust-pijul-identity")
    (version "0.0.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "pijul-identity" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1hpsw5k3s47nf8hxmi7pb6552ld3xz688hqldz57n9v7d7k660m1"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
                       ("rust-chrono" ,rust-chrono-0.4)
                       ("rust-dateparser" ,rust-dateparser-0.1)
                       ("rust-dirs-next" ,rust-dirs-next-2)
                       ("rust-keyring" ,rust-keyring-2)
                       ("rust-libpijul" ,rust-libpijul-1)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-pijul-config" ,rust-pijul-config-0.0.1)
                       ("rust-pijul-interaction" ,rust-pijul-interaction-0.0.1)
                       ("rust-pijul-repository" ,rust-pijul-repository-0.0.1)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-json" ,rust-serde-json-1)
                       ("rust-thiserror" ,rust-thiserror-1)
                       ("rust-thrussh-keys" ,rust-thrussh-keys-0.21)
                       ("rust-toml" ,rust-toml-0.7)
                       ("rust-validator" ,rust-validator-0.15)
                       ("rust-whoami" ,rust-whoami-1))))
    (home-page "https://nest.pijul.com/pijul/pijul")
    (synopsis "Functionality to interact with Pijul identities")
    (description "Functionality to interact with Pijul identities")
    (license license:gpl2)))

(define-public rust-pijul-config-0.0.1
  (package
    (name "rust-pijul-config")
    (version "0.0.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "pijul-config" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "19xdcqyw2lh4r8rs5dfjzqf27ajfld2gimw07bhvnjixz0gplylq"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
                       ("rust-dialoguer" ,rust-dialoguer-0.10)
                       ("rust-dirs-next" ,rust-dirs-next-2)
                       ("rust-edit" ,rust-edit-0.1)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-derive" ,rust-serde-derive-1)
                       ("rust-toml" ,rust-toml-0.5)
                       ("rust-whoami" ,rust-whoami-1))))
    (home-page "https://nest.pijul.com/pijul/pijul")
    (synopsis "Configuration for the pijul version control system")
    (description "Configuration for the pijul version control system")
    (license license:gpl2)))

(define-public rust-zstd-seekable-0.1
  (package
    (name "rust-zstd-seekable")
    (version "0.1.23")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "zstd-seekable" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1hn3lry2p1fzjlx6shwq1k5bcpx4lqckmvl16gqx326vbiy12jjp"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-bincode" ,rust-bincode-1)
                       ("rust-cc" ,rust-cc-1)
                       ("rust-libc" ,rust-libc-0.2)
                       ("rust-pkg-config" ,rust-pkg-config-0.3)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-derive" ,rust-serde-derive-1)
                       ("rust-thiserror" ,rust-thiserror-1)
                       ("rust-threadpool" ,rust-threadpool-1))))
    (home-page "https://nest.pijul.com/pmeunier/zstd-seekable")
    (synopsis "Bindings to the seekable version of ZStandard.")
    (description "Bindings to the seekable version of ZStandard.")
    (license license:bsd-3)))

(define-public rust-ed25519-zebra-2
  (package
    (name "rust-ed25519-zebra")
    (version "2.2.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "ed25519-zebra" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "0284mnhc2514b9hzyhgcf8vfggwdqwyx8vsawckv9m3dmxv8n4ha"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-curve25519-dalek" ,rust-curve25519-dalek-3)
                       ("rust-hex" ,rust-hex-0.4)
                       ("rust-rand-core" ,rust-rand-core-0.5)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-sha2" ,rust-sha2-0.9)
                       ("rust-thiserror" ,rust-thiserror-1))))
    (home-page "https://github.com/ZcashFoundation/ed25519-zebra")
    (synopsis "Zcash-flavored Ed25519 for use in Zebra.")
    (description "Zcash-flavored Ed25519 for use in Zebra.")
    (license (list license:expat license:asl2.0))))

(define-public rust-sanakirja-core-1
  (package
    (name "rust-sanakirja-core")
    (version "1.4.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "sanakirja-core" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1xcb4d9gaxp61na4dyz9iiq3n1shhiivqs0iv5xnxb1ymqsdnxl3"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-crc32fast" ,rust-crc32fast-1)
                       ("rust-ed25519-zebra" ,rust-ed25519-zebra-2)
                       ("rust-sha2" ,rust-sha2-0.10)
                       ("rust-uuid" ,rust-uuid-1))))
    (home-page "https://nest.pijul.com/pijul/sanakirja")
    (synopsis
     "Copy-on-write datastructures, storable on disk (or elsewhere) with a stable format.")
    (description
     "Copy-on-write datastructures, storable on disk (or elsewhere) with a stable
format.")
    (license (list license:expat license:asl2.0))))

(define-public rust-sanakirja-1
  (package
    (name "rust-sanakirja")
    (version "1.4.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "sanakirja" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "0wnygjsvnfd3hnls7pa8h3mflp1hnil3nisf4337vakr62s5wf3w"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-crc32fast" ,rust-crc32fast-1)
                       ("rust-fs2" ,rust-fs2-0.4)
                       ("rust-lazy-static" ,rust-lazy-static-1)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-memmap" ,rust-memmap-0.7)
                       ("rust-parking-lot" ,rust-parking-lot-0.11)
                       ("rust-sanakirja-core" ,rust-sanakirja-core-1)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-thiserror" ,rust-thiserror-1))))
    (home-page "https://nest.pijul.com/pijul/sanakirja")
    (synopsis
     "Copy-on-write datastructures, storable on disk (or elsewhere) with a stable format.")
    (description
     "Copy-on-write datastructures, storable on disk (or elsewhere) with a stable
format.")
    (license (list license:expat license:asl2.0))))

(define-public rust-pijul-macros-0.5
  (package
    (name "rust-pijul-macros")
    (version "0.5.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "pijul-macros" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "0r3hivav1mzpzdpk2rj8flhl4vgp2r85gdi0kw5x8r8bv0y79cy2"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
                       ("rust-quote" ,rust-quote-1)
                       ("rust-regex" ,rust-regex-1)
                       ("rust-syn" ,rust-syn-1))))
    (home-page "https://nest.pijul.com/pijul/pijul")
    (synopsis "Macros used to write libpijul.")
    (description "Macros used to write libpijul.")
    (license license:gpl2)))

(define-public rust-path-slash-0.1
  (package
    (name "rust-path-slash")
    (version "0.1.5")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "path-slash" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "15mni0f28mblwd97192c4zyyi6054yljmiqrdb6bx97ga69hk2j9"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t))
    (home-page "https://github.com/rhysd/path-slash")
    (synopsis "Conversion to/from a file path from/to slash path")
    (description "Conversion to/from a file path from/to slash path")
    (license license:expat)))

(define-public rust-diffs-0.5
  (package
    (name "rust-diffs")
    (version "0.5.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "diffs" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "01f8bp77kgahgvr3s2igmnmsxynjklq830lmp2wp2jyph6bnq4gz"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t))
    (home-page "https://nest.pijul.com/pijul/diffs")
    (synopsis
     "A number of diff algorithms, also called longest common subsequence.")
    (description
     "This package provides a number of diff algorithms, also called longest common
subsequence.")
    (license (list license:expat license:asl2.0))))

(define-public rust-chardetng-0.1
  (package
    (name "rust-chardetng")
    (version "0.1.17")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "chardetng" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1spikjcnblwa5n1nnk46fxkwn86yfiqxgs47h4yaw23vbfvg1f0l"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-arrayvec" ,rust-arrayvec-0.5)
                       ("rust-cfg-if" ,rust-cfg-if-1)
                       ("rust-encoding-rs" ,rust-encoding-rs-0.8)
                       ("rust-memchr" ,rust-memchr-2)
                       ("rust-rayon" ,rust-rayon-1))))
    (home-page "https://docs.rs/chardetng/")
    (synopsis "A character encoding detector for legacy Web content")
    (description
     "This package provides a character encoding detector for legacy Web content")
    (license (list license:asl2.0 license:expat))))

(define-public rust-bs58-0.4
  (package
    (name "rust-bs58")
    (version "0.4.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "bs58" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1lr3vwzhhyica4y7rbkf26vr1h7vpjb1m6rml8zcqgw81c2y07vp"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-sha2" ,rust-sha2-0.9))))
    (home-page "https://github.com/Nullus157/bs58-rs")
    (synopsis "Another Base58 codec implementation.")
    (description "Another Base58 codec implementation.")
    (license (list license:expat license:asl2.0))))

(define-public rust-libpijul-1
  (package
    (name "rust-libpijul")
    (version "1.0.0-beta.10")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "libpijul" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "0yjii3hh8s7cvp5aihngh49266iz9h5bwlfrcyd1dglinyv0f213"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-adler32" ,rust-adler32-1)
                       ("rust-aes" ,rust-aes-0.7)
                       ("rust-bincode" ,rust-bincode-1)
                       ("rust-bitflags" ,rust-bitflags-1)
                       ("rust-blake3" ,rust-blake3-1)
                       ("rust-bs58" ,rust-bs58-0.4)
                       ("rust-byteorder" ,rust-byteorder-1)
                       ("rust-canonical-path" ,rust-canonical-path-2)
                       ("rust-cfg-if" ,rust-cfg-if-1)
                       ("rust-chardetng" ,rust-chardetng-0.1)
                       ("rust-chrono" ,rust-chrono-0.4)
                       ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.8)
                       ("rust-curve25519-dalek" ,rust-curve25519-dalek-3)
                       ("rust-data-encoding" ,rust-data-encoding-2)
                       ("rust-diffs" ,rust-diffs-0.5)
                       ("rust-ed25519-dalek" ,rust-ed25519-dalek-1)
                       ("rust-encoding-rs" ,rust-encoding-rs-0.8)
                       ("rust-flate2" ,rust-flate2-1)
                       ("rust-generic-array" ,rust-generic-array-0.14)
                       ("rust-getrandom" ,rust-getrandom-0.2)
                       ("rust-hmac" ,rust-hmac-0.11)
                       ("rust-ignore" ,rust-ignore-0.4)
                       ("rust-lazy-static" ,rust-lazy-static-1)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-lru-cache" ,rust-lru-cache-0.1)
                       ("rust-memchr" ,rust-memchr-2)
                       ("rust-nom" ,rust-nom-7)
                       ("rust-parking-lot" ,rust-parking-lot-0.11)
                       ("rust-path-slash" ,rust-path-slash-0.1)
                       ("rust-pbkdf2" ,rust-pbkdf2-0.9)
                       ("rust-pijul-macros" ,rust-pijul-macros-0.5)
                       ("rust-rand" ,rust-rand-0.8)
                       ("rust-regex" ,rust-regex-1)
                       ("rust-sanakirja" ,rust-sanakirja-1)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-derive" ,rust-serde-derive-1)
                       ("rust-serde-json" ,rust-serde-json-1)
                       ("rust-sha2" ,rust-sha2-0.9)
                       ("rust-tar" ,rust-tar-0.4)
                       ("rust-tempfile" ,rust-tempfile-3)
                       ("rust-thiserror" ,rust-thiserror-1)
                       ("rust-toml" ,rust-toml-0.5)
                       ("rust-twox-hash" ,rust-twox-hash-1)
                       ("rust-zstd-seekable" ,rust-zstd-seekable-0.1))))
    (home-page "https://nest.pijul.com/pijul/libpijul")
    (synopsis
     "Core library of Pijul, a distributed version control system based on a sound theory of collaborative work.")
    (description
     "Core library of Pijul, a distributed version control system based on a sound
theory of collaborative work.")
    (license license:gpl2+)))

(define-public rust-terminal-size-0.2
  (package
    (name "rust-terminal-size")
    (version "0.2.6")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "terminal_size" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "0drj7gb77kay5r1cv53ysq3g9g4f8n0jkhld0kadi3lzkvqzcswf"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-rustix" ,rust-rustix-0.37)
                       ("rust-windows-sys" ,rust-windows-sys-0.48))))
    (home-page "https://github.com/eminence/terminal-size")
    (synopsis "Gets the size of your Linux or Windows terminal")
    (description "Gets the size of your Linux or Windows terminal")
    (license (list license:expat license:asl2.0))))

(define-public rust-anstyle-1
  (package
    (name "rust-anstyle")
    (version "1.0.6")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "anstyle" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1g1ngvxrz9d6xsymxzzzg581jzyz1sn8d0jpjcwxks07cff2c0c9"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t))
    (home-page "https://github.com/rust-cli/anstyle")
    (synopsis "ANSI text styling")
    (description "ANSI text styling")
    (license (list license:expat license:asl2.0))))

(define-public rust-winnow-0.6
  (package
    (name "rust-winnow")
    (version "0.6.1")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "winnow" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "00dlcbnxx4nnqiha2wd4rg4ysm9qxzlkkn405gv6jk0cac7lw3yr"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-anstream" ,rust-anstream-0.3)
                       ("rust-anstyle" ,rust-anstyle-1)
                       ("rust-is-terminal" ,rust-is-terminal-0.4)
                       ("rust-memchr" ,rust-memchr-2)
                       ("rust-terminal-size" ,rust-terminal-size-0.2))))
    (home-page "https://github.com/winnow-rs/winnow")
    (synopsis "A byte-oriented, zero-copy, parser combinators library")
    (description
     "This package provides a byte-oriented, zero-copy, parser combinators library")
    (license license:expat)))

(define-public rust-toml-edit-0.22
  (package
    (name "rust-toml-edit")
    (version "0.22.5")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "toml_edit" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "12njk9d18j004w9sfz04g6s7pmwhq70b1dsfijiahnwgkqaqrrlr"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-indexmap" ,rust-indexmap-2)
                       ("rust-kstring" ,rust-kstring-2)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-spanned" ,rust-serde-spanned-0.6)
                       ("rust-toml-datetime" ,rust-toml-datetime-0.6)
                       ("rust-winnow" ,rust-winnow-0.6))))
    (home-page "https://github.com/toml-rs/toml")
    (synopsis "Yet another format-preserving TOML parser.")
    (description "Yet another format-preserving TOML parser.")
    (license (list license:expat license:asl2.0))))

(define-public rust-serde-spanned-0.6
  (package
    (name "rust-serde-spanned")
    (version "0.6.5")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "serde_spanned" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1hgh6s3jjwyzhfk3xwb6pnnr1misq9nflwq0f026jafi37s24dpb"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-serde" ,rust-serde-1))))
    (home-page "https://github.com/toml-rs/toml")
    (synopsis "Serde-compatible spanned Value")
    (description "Serde-compatible spanned Value")
    (license (list license:expat license:asl2.0))))

(define-public rust-toml-0.8
  (package
    (name "rust-toml")
    (version "0.8.10")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "toml" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "14220pic50ibrv34b88p25smi9bhdshaixfwx1v0h0b6615av6ls"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-indexmap" ,rust-indexmap-2)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-spanned" ,rust-serde-spanned-0.6)
                       ("rust-toml-datetime" ,rust-toml-datetime-0.6)
                       ("rust-toml-edit" ,rust-toml-edit-0.22))))
    (home-page "https://github.com/toml-rs/toml")
    (synopsis
     "A native Rust encoder and decoder of TOML-formatted files and streams. Provides
implementations of the standard Serialize/Deserialize traits for TOML data to
facilitate deserializing and serializing Rust structures.
")
    (description
     "This package provides a native Rust encoder and decoder of TOML-formatted files
and streams.  Provides implementations of the standard Serialize/Deserialize
traits for TOML data to facilitate deserializing and serializing Rust
structures.")
    (license (list license:expat license:asl2.0))))

(define-public rust-anstream-0.6
  (package
    (name "rust-anstream")
    (version "0.6.11")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "anstream" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "19dndamalavhjwp4i74k8hdijcixb7gsfa6ycwyc1r8xn6y1wbkf"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-anstyle" ,rust-anstyle-1)
                       ("rust-anstyle-parse" ,rust-anstyle-parse-0.2)
                       ("rust-anstyle-query" ,rust-anstyle-query-1)
                       ("rust-anstyle-wincon" ,rust-anstyle-wincon-3)
                       ("rust-colorchoice" ,rust-colorchoice-1)
                       ("rust-utf8parse" ,rust-utf8parse-0.2))))
    (home-page "https://github.com/rust-cli/anstyle")
    (synopsis
     "A simple cross platform library for writing colored text to a terminal.")
    (description
     "This package provides a simple cross platform library for writing colored text
to a terminal.")
    (license (list license:expat license:asl2.0))))

(define-public rust-human-panic-1
  (package
    (name "rust-human-panic")
    (version "1.2.3")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "human-panic" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "0w7kbj2y3rrnax2bj4s3aashsm5lrg55wh58a44v7fr0k741dw64"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-anstream" ,rust-anstream-0.6)
                       ("rust-anstyle" ,rust-anstyle-1)
                       ("rust-backtrace" ,rust-backtrace-0.3)
                       ("rust-os-info" ,rust-os-info-3)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-derive" ,rust-serde-derive-1)
                       ("rust-toml" ,rust-toml-0.8)
                       ("rust-uuid" ,rust-uuid-1))))
    (home-page "https://github.com/rust-cli/human-panic")
    (synopsis "Panic messages for humans")
    (description "Panic messages for humans")
    (license (list license:expat license:asl2.0))))

(define-public rust-edit-0.1
  (package
    (name "rust-edit")
    (version "0.1.5")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "edit" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "02dan6bg9pcj42ny48g8fq9f76w30c826n4gihy1d1s7fq78cr7k"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-shell-words" ,rust-shell-words-1)
                       ("rust-tempfile" ,rust-tempfile-3)
                       ("rust-which" ,rust-which-4))))
    (home-page "https://github.com/milkey-mouse/edit")
    (synopsis "Open a file in the default text editor")
    (description "Open a file in the default text editor")
    (license license:cc0)))

(define-public rust-dateparser-0.1
  (package
    (name "rust-dateparser")
    (version "0.1.8")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "dateparser" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1i00pd2spxsz1d89n0ssf79q1w8ijx0p0rybx5d9z8lpzqhjmqf9"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
                       ("rust-chrono" ,rust-chrono-0.4)
                       ("rust-lazy-static" ,rust-lazy-static-1)
                       ("rust-regex" ,rust-regex-1))))
    (home-page "https://github.com/waltzofpearls/dateparser")
    (synopsis "Parse dates in string formats that are commonly used")
    (description "Parse dates in string formats that are commonly used")
    (license license:expat)))

(define-public rust-ctrlc-3
  (package
    (name "rust-ctrlc")
    (version "3.2.0")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "ctrlc" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1l82dkflbai4dslq6djy055fmpsbhvry4qlcl70v583j5809nz1p"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t
       #:cargo-inputs (("rust-nix" ,rust-nix-0.22)
                       ("rust-winapi" ,rust-winapi-0.3))))
    (home-page "https://github.com/Detegr/rust-ctrlc")
    (synopsis "Easy Ctrl-C handler for Rust projects")
    (description "Easy Ctrl-C handler for Rust projects")
    (license (list license:expat license:asl2.0))))

(define-public pijul
  (package
    (name "pijul")
    (version "1.0.0-beta.9")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "pijul" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1lk261rrk4xy60d4akfn8mrrqxls28kf9mzrjcrxdzbdysml66n5"))))
    (build-system cargo-build-system)
    (native-inputs
     (list pkg-config))
    (inputs
     (list openssl libsodium))
    (arguments
     `(#:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
                       ("rust-async-trait" ,rust-async-trait-0.1)
                       ("rust-atty" ,rust-atty-0.2)
                       ("rust-byteorder" ,rust-byteorder-1)
                       ("rust-bytes" ,rust-bytes-1)
                       ("rust-canonical-path" ,rust-canonical-path-2)
                       ("rust-chrono" ,rust-chrono-0.4)
                       ("rust-clap" ,rust-clap-4)
                       ("rust-clap-complete" ,rust-clap-complete-4)
                       ("rust-ctrlc" ,rust-ctrlc-3)
                       ("rust-data-encoding" ,rust-data-encoding-2)
                       ("rust-dateparser" ,rust-dateparser-0.1)
                       ("rust-dirs-next" ,rust-dirs-next-2)
                       ("rust-edit" ,rust-edit-0.1)
                       ("rust-env-logger" ,rust-env-logger-0.8)
                       ("rust-futures" ,rust-futures-0.3)
                       ("rust-futures-util" ,rust-futures-util-0.3)
                       ("rust-git2" ,rust-git2-0.13)
                       ("rust-human-panic" ,rust-human-panic-1)
                       ("rust-hyper" ,rust-hyper-0.14)
                       ("rust-ignore" ,rust-ignore-0.4)
                       ("rust-keyring" ,rust-keyring-2)
                       ("rust-lazy-static" ,rust-lazy-static-1)
                       ("rust-libpijul" ,rust-libpijul-1)
                       ("rust-log" ,rust-log-0.4)
                       ("rust-open" ,rust-open-3)
                       ("rust-pager" ,rust-pager-0.16)
                       ("rust-path-slash" ,rust-path-slash-0.1)
                       ("rust-pijul-config" ,rust-pijul-config-0.0.1)
                       ("rust-pijul-identity" ,rust-pijul-identity-0.0.1)
                       ("rust-pijul-interaction" ,rust-pijul-interaction-0.0.1)
                       ("rust-pijul-remote" ,rust-pijul-remote-1)
                       ("rust-pijul-repository" ,rust-pijul-repository-0.0.1)
                       ("rust-ptree" ,rust-ptree-0.4)
                       ("rust-rand" ,rust-rand-0.8)
                       ("rust-regex" ,rust-regex-1)
                       ("rust-reqwest" ,rust-reqwest-0.11)
                       ("rust-sanakirja" ,rust-sanakirja-1)
                       ("rust-serde" ,rust-serde-1)
                       ("rust-serde-derive" ,rust-serde-derive-1)
                       ("rust-serde-json" ,rust-serde-json-1)
                       ("rust-tempfile" ,rust-tempfile-3)
                       ("rust-termcolor" ,rust-termcolor-1)
                       ("rust-thiserror" ,rust-thiserror-1)
                       ("rust-thrussh" ,rust-thrussh-0.33)
                       ("rust-thrussh-config" ,rust-thrussh-config-0.5)
                       ("rust-thrussh-keys" ,rust-thrussh-keys-0.21)
                       ("rust-tokio" ,rust-tokio-1)
                       ("rust-toml" ,rust-toml-0.5)
                       ("rust-url" ,rust-url-2)
                       ("rust-validator" ,rust-validator-0.15)
                       ("rust-whoami" ,rust-whoami-1))
       #:cargo-development-inputs (("rust-exitcode" ,rust-exitcode-1)
                                   ("rust-expectrl" ,rust-expectrl-0.7))))
    (home-page "https://nest.pijul.com/pijul/pijul")
    (synopsis "A distributed version control system.")
    (description "This package provides a distributed version control system.")
    (license license:gpl2+)))