projects/guix·blob python-team · refs

2526 lines · 97.3 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2018 Pierre Neidhardt <[email protected]>
3;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <[email protected]>
4;;; Copyright © 2019, 2020 Martin Becze <[email protected]>
5;;; Copyright © 2020, 2021, 2022 Michael Rohleder <[email protected]>
6;;; Copyright © 2022 Maxime Devos <[email protected]>
7;;; Copyright © 2023, 2024, 2025 Artyom V. Poptsov <[email protected]>
8;;; Copyright © 2024-2025 Sharlatan Hellseher <[email protected]>
9;;; Copyright © 2024 Giacomo Leidi <[email protected]>
10;;; Copyright © 2026 Efraim Flashner <[email protected]>
11;;;
12;;; This file is part of GNU Guix.
13;;;
14;;; GNU Guix is free software; you can redistribute it and/or modify it
15;;; under the terms of the GNU General Public License as published by
16;;; the Free Software Foundation; either version 3 of the License, or (at
17;;; your option) any later version.
18;;;
19;;; GNU Guix is distributed in the hope that it will be useful, but
20;;; WITHOUT ANY WARRANTY; without even the implied warranty of
21;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22;;; GNU General Public License for more details.
23;;;
24;;; You should have received a copy of the GNU General Public License
25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26
27(define-module (gnu packages ipfs)
28 #:use-module ((guix licenses) #:prefix license:)
29 #:use-module (guix packages)
30 #:use-module (guix gexp)
31 #:use-module (guix git-download)
32 #:use-module (guix download)
33 #:use-module (guix build-system go)
34 #:use-module (guix utils)
35 #:use-module (gnu packages databases)
36 #:use-module (gnu packages gcc)
37 #:use-module (gnu packages golang)
38 #:use-module (gnu packages golang-build)
39 #:use-module (gnu packages golang-check)
40 #:use-module (gnu packages golang-compression)
41 #:use-module (gnu packages golang-crypto)
42 #:use-module (gnu packages golang-maths)
43 #:use-module (gnu packages golang-web)
44 #:use-module (gnu packages golang-xyz)
45 #:use-module (gnu packages prometheus)
46 #:use-module (gnu packages python)
47 #:use-module (gnu packages shells)
48 #:use-module (gnu packages specifications))
49
50(define-public go-github-com-ceramicnetwork-go-dag-jose
51 (package
52 (name "go-github-com-ceramicnetwork-go-dag-jose")
53 (version "0.1.1")
54 (source
55 (origin
56 (method git-fetch)
57 (uri (git-reference
58 (url "https://github.com/ceramicnetwork/go-dag-jose")
59 (commit (string-append "v" version))))
60 (file-name (git-file-name name version))
61 (sha256
62 (base32 "0g34dwlnq07zg176bdhp2hcg1hg5l55s0a6hk4kiq37vm01w68j7"))
63 (snippet
64 #~(begin (use-modules (guix build utils))
65 ;; Delete git submodule.
66 (delete-file-recursively ".ipld")))))
67 (build-system go-build-system)
68 (arguments
69 (list
70 #:import-path "github.com/ceramicnetwork/go-dag-jose"
71 #:phases
72 #~(modify-phases %standard-phases
73 ;; XXX: Workaround for go-build-system's lack of Go modules
74 ;; support.
75 (delete 'build)
76 (replace 'check
77 (lambda* (#:key tests? import-path #:allow-other-keys)
78 (when tests?
79 (with-directory-excursion (string-append "src/" import-path)
80 (invoke "go" "test" "-v" "./..."))))))))
81 (native-inputs
82 (list go-github-com-stretchr-testify
83 go-github-com-frankban-quicktest
84 go-github-com-warpfork-go-testmark))
85 (propagated-inputs
86 (list go-github-com-go-jose-go-jose-v4
87 go-github-com-ipfs-go-cid
88 go-github-com-ipld-go-ipld-prime
89 go-github-com-multiformats-go-multibase
90 go-github-com-multiformats-go-multihash
91 go-golang-org-x-crypto
92 go-pgregory-net-rapid))
93 (home-page "https://github.com/ceramicnetwork/go-dag-jose")
94 (synopsis "Implementation of the IPLD dag-jose codec")
95 (description
96 "This is an implementation of the IPLD
97@@url{https://ipld.io/specs/codecs/dag-jose/spec/,dag-jose codec}.")
98 (license license:expat)))
99
100(define-public go-github-com-ipfs-bbloom
101 (package
102 (name "go-github-com-ipfs-bbloom")
103 (version "0.1.0")
104 (source
105 (origin
106 (method git-fetch)
107 (uri (git-reference
108 (url "https://github.com/ipfs/bbloom")
109 (commit (string-append "v" version))))
110 (file-name (git-file-name name version))
111 (sha256
112 (base32 "0k3bwhp0vc4ivnw32q8gi974xcqwjw2471lz4qkypxi7ld8clgmj"))))
113 (build-system go-build-system)
114 (arguments
115 (list
116 #:import-path "github.com/ipfs/bbloom"))
117 (home-page "https://github.com/ipfs/bbloom")
118 (synopsis "Fast bit set Bloom filter")
119 (description
120 "This package implements a fast bloom filter with real @code{bitset} and
121JSONMarshal/JSONUnmarshal to store/reload the Bloom filter. It's an
122alternative fork of @url{https://github.com/gxed/bbloom}.")
123 (license (list license:expat ; bbloom.go
124 license:public-domain)))) ; siphash.go
125
126(define-public go-github-com-ipfs-boxo
127 (package
128 (name "go-github-com-ipfs-boxo")
129 (version "0.41.0")
130 (source
131 (origin
132 (method git-fetch)
133 (uri (git-reference
134 (url "https://github.com/ipfs/boxo")
135 (commit (string-append "v" version))))
136 (file-name (git-file-name name version))
137 (sha256
138 (base32 "1py1p8ijxj16k2l8szrrjw7raf63m44wdrwlaa63rfc7c9fd5nni"))
139 (modules '((guix build utils)))
140 (snippet
141 #~(begin
142 ;; Submodules with their own go.mod files and packaged separately:
143 (delete-file-recursively "examples")))))
144 (build-system go-build-system)
145 (arguments
146 (list
147 #:skip-build? #t
148 #:embed-files #~(list "sorted-network-list.bin")
149 #:import-path "github.com/ipfs/boxo"
150 #:test-flags
151 #~(list "-skip" (string-join
152 ;; Network access is required.
153 (list "TestAddNewDNSResolver"
154 "TestOverrideDNSDefaults"
155 ;; failed to fetch from remote (failed to fetch
156 ;; config: Get
157 ;; "https://conf.ipfs-mainnet.org/autoconf.json"
158 "TestRealAutoConfURL")
159 "|"))
160 #:phases
161 #~(modify-phases %standard-phases
162 (add-before 'check 'pre-check
163 (lambda* (#:key tests? import-path #:allow-other-keys)
164 ;; See: <https://go.dev/blog/synctest>.
165 (setenv "GODEBUG" "asynctimerchan=0"))))))
166 (native-inputs
167 (list go-github-com-libp2p-go-libp2p-kad-dht-bootstrap
168 go-github-com-libp2p-go-libp2p
169 go-github-com-stretchr-testify))
170 (propagated-inputs
171 (list go-github-com-alecthomas-units
172 go-github-com-cespare-xxhash-v2
173 go-github-com-crackcomm-go-gitignore
174 go-github-com-cskr-pubsub
175 go-github-com-dustin-go-humanize
176 go-github-com-gabriel-vasile-mimetype
177 go-github-com-gammazero-chanqueue
178 go-github-com-gammazero-deque
179 go-github-com-google-uuid
180 go-github-com-gorilla-mux
181 go-github-com-hashicorp-golang-lru-v2
182 go-github-com-ipfs-bbloom
183 go-github-com-ipfs-go-bitfield
184 go-github-com-ipfs-go-block-format
185 go-github-com-ipfs-go-cid
186 go-github-com-ipfs-go-cidutil
187 go-github-com-ipfs-go-datastore
188 go-github-com-ipfs-go-detect-race
189 go-github-com-ipfs-go-dsqueue
190 go-github-com-ipfs-go-ipfs-delay
191 go-github-com-ipfs-go-ipfs-redirects-file
192 go-github-com-ipfs-go-ipld-format
193 go-github-com-ipfs-go-ipld-legacy
194 go-github-com-ipfs-go-log-v2
195 go-github-com-ipfs-go-metrics-interface
196 go-github-com-ipfs-go-peertaskqueue
197 go-github-com-ipfs-go-test
198 go-github-com-ipfs-go-unixfsnode
199 go-github-com-ipld-go-car-v2
200 go-github-com-ipld-go-codec-dagpb
201 go-github-com-ipld-go-ipld-prime
202 go-github-com-libp2p-go-buffer-pool
203 go-github-com-libp2p-go-doh-resolver
204 go-github-com-libp2p-go-libp2p-record
205 go-github-com-libp2p-go-libp2p-routing-helpers
206 go-github-com-libp2p-go-libp2p-testing
207 go-github-com-libp2p-go-msgio
208 go-github-com-miekg-dns
209 go-github-com-mr-tron-base58
210 go-github-com-multiformats-go-base32
211 go-github-com-multiformats-go-multiaddr
212 go-github-com-multiformats-go-multiaddr-dns
213 go-github-com-multiformats-go-multibase
214 go-github-com-multiformats-go-multicodec
215 go-github-com-multiformats-go-multihash
216 go-github-com-multiformats-go-multistream
217 go-github-com-polydawn-refmt
218 go-github-com-prometheus-client-golang
219 go-github-com-prometheus-client-model
220 go-github-com-slok-go-http-metrics
221 go-github-com-spaolacci-murmur3
222 go-github-com-whyrusleeping-base32
223 go-github-com-whyrusleeping-chunker
224 go-go-opencensus-io
225 go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp
226 go-go-opentelemetry-io-otel
227 go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracegrpc
228 go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracehttp
229 go-go-opentelemetry-io-otel-exporters-stdout-stdouttrace
230 go-go-opentelemetry-io-otel-sdk
231 go-go-opentelemetry-io-otel-trace
232 go-go-uber-org-zap
233 go-golang-org-x-exp
234 go-golang-org-x-oauth2
235 go-golang-org-x-sync
236 go-golang-org-x-sys
237 go-google-golang-org-protobuf))
238 (home-page "https://github.com/ipfs/boxo")
239 (synopsis "Collection of reference libraries for building IPFS applications")
240 (description
241 "This package provides a set of libraries for building IPFS applications
242and implementations in Golang.
243
244Included subpackaged:
245@itemize
246@item @code{bitswap} - implementation of the bitswap protocol, the data
247trading module for ipfs
248
249@item @code{blockservice} - implements a BlockService interface that
250provides a single GetBlock/AddBlock interface that seamlessly retrieves data
251either locally or from a remote peer through the exchange
252
253@item @code{blockstore} - implements a thin wrapper over a datastore,
254giving a clean interface for Getting and Putting block objects
255
256@item @code{datastore/dshelp} - provides utilities for parsing and creating
257datastore keys used by go-ipfs
258
259@item @code{exchange} - defines the IPFS exchange interface
260
261@item @code{files} - file interfaces and utils used in Golang implementations
262of IPFS
263
264@item @code{filestore} - implements a Blockstore which is able to read certain
265blocks of data directly from its original location in the filesystem
266
267@item @code{ipld/unixfs} - provides additinoal @code{importer}, @code{io},
268@code{mod}, @code{hamt}, @code{archive} and @code{test} packages
269
270@item @code{ipld/merkledag} - implements the IPFS Merkle DAG data structures
271
272@item @code{ipns} - reference implementation of the IPNS Record and
273Verification specification
274
275@item @code{mfs} - implements an in memory model of a mutable IPFS filesystem
276
277@item @code{path} - contains utilities to work with IPFS paths
278@end itemize")
279 (license (list license:expat license:asl2.0))))
280
281(define-public go-github-com-ipfs-go-bitfield
282 (package
283 (name "go-github-com-ipfs-go-bitfield")
284 (version "1.1.0")
285 (source
286 (origin
287 (method git-fetch)
288 (uri (git-reference
289 (url "https://github.com/ipfs/go-bitfield")
290 (commit (string-append "v" version))))
291 (file-name (git-file-name name version))
292 (sha256
293 (base32 "1zhgwdg2kizhk0hb9q5p0pwrwldd2pacz8l1pnapxh6qm3fqs663"))))
294 (build-system go-build-system)
295 (arguments
296 (list
297 #:import-path "github.com/ipfs/go-bitfield"))
298 (home-page "https://github.com/ipfs/go-bitfield")
299 (synopsis "Allocated up-front Bitfield for Golang")
300 (description
301 "This package implements bitfields to the standard library's @code{big.Int}
302with some optimizations for use in IPFS.")
303 (license (list license:expat license:asl2.0))))
304
305(define-public go-github-com-ipfs-go-block-format
306 (package
307 (name "go-github-com-ipfs-go-block-format")
308 (version "0.2.0")
309 (source
310 (origin
311 (method git-fetch)
312 (uri (git-reference
313 (url "https://github.com/ipfs/go-block-format")
314 (commit (string-append "v" version))))
315 (file-name (git-file-name name version))
316 (sha256
317 (base32 "0pd8ww06ss922g3w2fgi3w0q66y2mkb9b2q9x5qxabrjj65xranz"))))
318 (build-system go-build-system)
319 (arguments
320 (list
321 #:import-path "github.com/ipfs/go-block-format"))
322 (propagated-inputs
323 (list go-github-com-multiformats-go-multihash
324 go-github-com-multiformats-go-varint
325 go-github-com-ipfs-go-cid
326 go-github-com-ipfs-go-ipfs-util))
327 (home-page "https://github.com/ipfs/go-block-format")
328 (synopsis "Set of interfaces for CID addressable blocks of data")
329 (description
330 "Package @code{blocks} contains the lowest level of @acronym{IPLD,
331InterPlanetary Linked Data} data structures. A block is raw data accompanied
332by a @acronym{Content Identifiers,CID}. The CID contains the multihash
333corresponding to the block.")
334 (license license:expat)))
335
336(define-public go-github-com-ipfs-go-cidutil
337 (package
338 (name "go-github-com-ipfs-go-cidutil")
339 (version "0.1.0")
340 (source
341 (origin
342 (method git-fetch)
343 (uri (git-reference
344 (url "https://github.com/ipfs/go-cidutil")
345 (commit (string-append "v" version))))
346 (file-name (git-file-name name version))
347 (sha256
348 (base32 "0j18wf42rfxrrh2fjdbjsjvjqxwgvg46b9wl6y5ig22fx5hvpm1n"))))
349 (build-system go-build-system)
350 (arguments
351 (list
352 #:import-path "github.com/ipfs/go-cidutil"))
353 (propagated-inputs
354 (list go-github-com-ipfs-go-cid
355 go-github-com-multiformats-go-multibase
356 go-github-com-multiformats-go-multicodec
357 go-github-com-multiformats-go-multihash))
358 (home-page "https://github.com/ipfs/go-cidutil")
359 (synopsis "Utility functions and types for working with CIDs")
360 (description
361 "@code{go-cidutil} implements various utilities and helper functions for working
362with @url{https://github.com/ipld/cid, CIDs}.")
363 (license license:expat)))
364
365(define-public go-github-com-ipfs-go-ds-badger4
366 (package
367 (name "go-github-com-ipfs-go-ds-badger4")
368 (version "0.1.8")
369 (source
370 (origin
371 (method git-fetch)
372 (uri (git-reference
373 (url "https://github.com/ipfs/go-ds-badger4")
374 (commit (string-append "v" version))))
375 (file-name (git-file-name name version))
376 (sha256
377 (base32 "1gyzywd74cb8jl0zr8b3fjjmd8rsabwk5rj17nhagigps4971h1a"))))
378 (build-system go-build-system)
379 (arguments
380 (list
381 #:import-path "github.com/ipfs/go-ds-badger4"))
382 (native-inputs
383 (list go-github-com-stretchr-testify
384 go-go-uber-org-zap))
385 (propagated-inputs
386 (list go-github-com-dgraph-io-badger-v4
387 go-github-com-ipfs-go-datastore
388 go-github-com-ipfs-go-detect-race
389 go-github-com-ipfs-go-log-v2))
390 (home-page "https://github.com/ipfs/go-ds-badger4")
391 (synopsis "Datastore implementation using Badger v4 as backend")
392 (description
393 "This package implements a Badger v4 (a key-value database) backed
394datastore for IPFS.")
395 (license (list license:expat license:asl2.0))))
396
397(define-public go-github-com-ipfs-go-ds-dynamodb
398 (package
399 (name "go-github-com-ipfs-go-ds-dynamodb")
400 (version "0.2.0")
401 (source
402 (origin
403 (method git-fetch)
404 (uri (git-reference
405 (url "https://github.com/ipfs/go-ds-dynamodb")
406 (commit (string-append "v" version))))
407 (file-name (git-file-name name version))
408 (sha256
409 (base32 "1z155ajpx52v71hsdjz5950z1w0qmp6c7lsqmsa9qyn7x21g7p0g"))))
410 (build-system go-build-system)
411 (arguments
412 (list
413 #:tests? #f ; tests need Docker or local DynamoDB Java app
414 #:import-path "github.com/ipfs/go-ds-dynamodb"))
415 (propagated-inputs
416 (list go-github-com-aws-aws-sdk-go
417 go-github-com-ipfs-go-datastore
418 go-github-com-ipfs-go-log-v2))
419 (home-page "https://github.com/ipfs/go-ds-dynamodb")
420 (synopsis "DynamoDB datastore implementation")
421 (description
422 "This is an implementation of @url{https://github.com/ipfs/go-datastore,
423go-datastore} that is backed by @code{DynamoDB}.
424
425ddbds includes support for optimized prefix queries. When you setup your
426table's key schema correctly and register it with ddbds, then incoming queries
427that match the schema will be converted into DynamoDB queries instead of table
428scans, enabling high performance, ordered, high-cardinality prefix queries.")
429 (license (list license:expat license:asl2.0))))
430
431(define-public go-github-com-ipfs-go-ds-flatfs
432 (package
433 (name "go-github-com-ipfs-go-ds-flatfs")
434 (version "0.5.5")
435 (source
436 (origin
437 (method git-fetch)
438 (uri (git-reference
439 (url "https://github.com/ipfs/go-ds-flatfs")
440 (commit (string-append "v" version))))
441 (file-name (git-file-name name version))
442 (sha256
443 (base32 "1m5fxxdn2zj9i9nm8fdyll4wcgaknfg3vj07959mj06hwc9r3z3c"))))
444 (build-system go-build-system)
445 (arguments
446 (list
447 #:import-path "github.com/ipfs/go-ds-flatfs"))
448 (propagated-inputs
449 (list go-github-com-ipfs-go-datastore
450 go-github-com-ipfs-go-log
451 go-github-com-jbenet-goprocess))
452 (home-page "https://github.com/ipfs/go-ds-flatfs")
453 (synopsis "Datastore with sharded directories and flat files")
454 (description
455 "Package flatfs is a Datastore implementation that stores all objects in
456a two-level directory structure in the local file system, regardless of the
457hierarchy of the keys.")
458 (license license:expat)))
459
460(define-public go-github-com-ipfs-go-ds-measure
461 (package
462 (name "go-github-com-ipfs-go-ds-measure")
463 (version "0.2.0")
464 (source
465 (origin
466 (method git-fetch)
467 (uri (git-reference
468 (url "https://github.com/ipfs/go-ds-measure")
469 (commit (string-append "v" version))))
470 (file-name (git-file-name name version))
471 (sha256
472 (base32 "14p3681sb1h81qxkwblngvy72yrd73drcvamgc3v7za734l9f54b"))))
473 (build-system go-build-system)
474 (arguments
475 (list
476 #:import-path "github.com/ipfs/go-ds-measure"))
477 (propagated-inputs
478 (list go-github-com-ipfs-go-datastore
479 go-github-com-ipfs-go-metrics-interface))
480 (home-page "https://github.com/ipfs/go-ds-measure")
481 (synopsis "Datastore implementation that keeps metrics on all calls made")
482 (description
483 "Package measure provides a Datastore wrapper that records metrics using
484@url{https://github.com/ipfs/go-metrics-interface}.")
485 (license license:expat)))
486
487(define-public go-github-com-ipfs-go-ds-pebble
488 (package
489 (name "go-github-com-ipfs-go-ds-pebble")
490 (version "0.5.9")
491 (source
492 (origin
493 (method git-fetch)
494 (uri (git-reference
495 (url "https://github.com/ipfs/go-ds-pebble")
496 (commit (string-append "v" version))))
497 (file-name (git-file-name name version))
498 (sha256
499 (base32 "0s1r3d4msxcbfm1ii39882vpka6ncq5bknp3al3gbs6wg3sa70bk"))))
500 (build-system go-build-system)
501 (arguments
502 (list
503 #:import-path "github.com/ipfs/go-ds-pebble"
504 #:build-flags #~(list "-tags" "external_libzstd")
505 #:test-flags #~(list "-tags" "external_libzstd")))
506 (propagated-inputs
507 (list go-github-com-cockroachdb-pebble-v2
508 go-github-com-ipfs-go-datastore
509 go-github-com-ipfs-go-log-v2))
510 (home-page "https://github.com/ipfs/go-ds-pebble")
511 (synopsis "Pebble-backed datastore")
512 (description
513 "This is a simple adapter to plug in
514@url{https://github.com/cockroachdb/pebble, cockroachdb/pebble} as a backend
515anywhere that accepts a @url{https://github.com/ipfs/go-datastore,
516go-datastore}.")
517 (license (list license:asl2.0 license:expat))))
518
519(define-public go-github-com-ipfs-go-dsqueue
520 (package
521 (name "go-github-com-ipfs-go-dsqueue")
522 (version "0.2.0")
523 (source
524 (origin
525 (method git-fetch)
526 (uri (git-reference
527 (url "https://github.com/ipfs/go-dsqueue")
528 (commit (string-append "v" version))))
529 (file-name (git-file-name name version))
530 (sha256
531 (base32 "0bz6b0541i0aisfjj45gw044yi78523ma98cnj1hbrx028480chb"))))
532 (build-system go-build-system)
533 (arguments
534 (list
535 #:import-path "github.com/ipfs/go-dsqueue"
536 #:phases
537 #~(modify-phases %standard-phases
538 (add-before 'check 'pre-check
539 (lambda* (#:key tests? import-path #:allow-other-keys)
540 ;; See: <https://go.dev/blog/synctest>.
541 (setenv "GOEXPERIMENT" "synctest")
542 (setenv "GODEBUG" "asynctimerchan=0"))))))
543 (native-inputs
544 (list go-github-com-ipfs-go-test))
545 (propagated-inputs
546 (list go-github-com-gammazero-deque
547 go-github-com-hashicorp-golang-lru-v2
548 go-github-com-ipfs-go-cid
549 go-github-com-ipfs-go-datastore
550 go-github-com-ipfs-go-ds-leveldb
551 go-github-com-ipfs-go-log-v2))
552 (home-page "https://github.com/ipfs/go-dsqueue")
553 (synopsis "Buffered FIFO interface to datastore")
554 (description
555 "Package dsqueue provides a buffered FIFO interface to the datastore for
556storing and retrieving items. Queued items are persisted across restarts.")
557 ;; SPDX-License-Identifier: Apache-2.0 OR MIT
558 (license (list license:expat license:asl2.0))))
559
560(define-public go-github-com-ipfs-go-fs-lock
561 (package
562 (name "go-github-com-ipfs-go-fs-lock")
563 (version "0.1.1")
564 (source
565 (origin
566 (method git-fetch)
567 (uri (git-reference
568 (url "https://github.com/ipfs/go-fs-lock")
569 (commit (string-append "v" version))))
570 (file-name (git-file-name name version))
571 (sha256
572 (base32 "14m5038067px6vvqyvx6449f0f62nj8d0p5hkf9rj8ykfahs80ff"))))
573 (build-system go-build-system)
574 (arguments
575 (list
576 #:import-path "github.com/ipfs/go-fs-lock"))
577 (propagated-inputs
578 (list go-github-com-ipfs-go-ipfs-util
579 go-github-com-ipfs-go-log-v2
580 go-go4-org
581 go-golang-org-x-sys))
582 (home-page "https://github.com/ipfs/go-fs-lock")
583 (synopsis "Filesystem based locking")
584 (description
585 "This package implements a filesystem based locking.")
586 (license license:expat)))
587
588(define-public go-github-com-ipfs-go-ipfs-blocksutil
589 (package
590 (name "go-github-com-ipfs-go-ipfs-blocksutil")
591 (version "0.0.2")
592 (source
593 (origin
594 (method git-fetch)
595 (uri (git-reference
596 (url "https://github.com/ipfs/go-ipfs-blocksutil")
597 (commit (string-append "v" version))))
598 (file-name (git-file-name name version))
599 (sha256
600 (base32 "0g6b4b2b5wp5r0dh20qdfdm76qnh421y8lgz4381r02q2flh57dv"))))
601 (build-system go-build-system)
602 (arguments
603 (list
604 #:import-path "github.com/ipfs/go-ipfs-blocksutil"))
605 (propagated-inputs
606 (list go-github-com-ipfs-go-block-format))
607 (home-page "https://github.com/ipfs/go-ipfs-blocksutil")
608 (synopsis "Utility functions for working with IPFS blocks")
609 (description
610 "This package provides an utility functions for working with
611@url{https://github.com/ipfs/go-block-format, IPFS blocks}.")
612 (license license:expat)))
613
614(define-public go-github-com-ipfs-go-ipfs-cmds
615 (package
616 (name "go-github-com-ipfs-go-ipfs-cmds")
617 (version "0.16.1")
618 (source
619 (origin
620 (method git-fetch)
621 (uri (git-reference
622 (url "https://github.com/ipfs/go-ipfs-cmds")
623 (commit (string-append "v" version))))
624 (file-name (git-file-name name version))
625 (sha256
626 (base32 "01cnpzbacdcbzi6lbppyn6vczrjvayh6s0fqm0mcaym1xi61y8jh"))))
627 (build-system go-build-system)
628 (arguments
629 (list
630 #:import-path "github.com/ipfs/go-ipfs-cmds"
631 #:phases
632 #~(modify-phases %standard-phases
633 (add-after 'unpack 'remove-examples
634 (lambda* (#:key import-path #:allow-other-keys)
635 (with-directory-excursion (string-append "src/" import-path)
636 (delete-file-recursively "examples")))))))
637 (propagated-inputs
638 (list go-github-com-ipfs-boxo
639 go-github-com-ipfs-go-log-v2
640 go-github-com-rs-cors
641 go-github-com-texttheater-golang-levenshtein
642 go-golang-org-x-term))
643 (home-page "https://github.com/ipfs/go-ipfs-cmds")
644 (synopsis "IPFS commands package")
645 (description
646 "Package cmds helps building both standalone and client-server
647applications.")
648 (license license:expat)))
649
650(define-public go-github-com-ipfs-go-ipfs-delay
651 (package
652 (name "go-github-com-ipfs-go-ipfs-delay")
653 (version "0.0.1")
654 (source
655 (origin
656 (method git-fetch)
657 (uri (git-reference
658 (url "https://github.com/ipfs/go-ipfs-delay")
659 (commit (string-append "v" version))))
660 (file-name (git-file-name name version))
661 (sha256
662 (base32 "0a5acj622sk1hibnh893mya4h86nsy1dan0wlh9q444c04iqpviw"))))
663 (build-system go-build-system)
664 (arguments
665 (list
666 #:import-path "github.com/ipfs/go-ipfs-delay"))
667 (home-page "https://github.com/ipfs/go-ipfs-delay")
668 (synopsis "Configurable delays to other objects")
669 (description
670 "This package implements a threadsafe configurable delays to other
671objects.")
672 (license license:expat)))
673
674(define-public go-github-com-ipfs-go-ipfs-ds-help
675 (package
676 (name "go-github-com-ipfs-go-ipfs-ds-help")
677 (version "1.1.1")
678 (source
679 (origin
680 (method git-fetch)
681 (uri (git-reference
682 (url "https://github.com/ipfs/go-ipfs-ds-help")
683 (commit (string-append "v" version))))
684 (file-name (git-file-name name version))
685 (sha256
686 (base32 "1xmn9pdyrcim9ahqs9pkh0c9ac71gilb3pb48kcagq8zxf22i4bj"))))
687 (build-system go-build-system)
688 (arguments
689 (list
690 #:import-path "github.com/ipfs/go-ipfs-ds-help"))
691 (propagated-inputs
692 (list go-github-com-ipfs-go-cid
693 go-github-com-ipfs-go-datastore
694 go-github-com-multiformats-go-base32
695 go-github-com-multiformats-go-multihash))
696 (home-page "https://github.com/ipfs/go-ipfs-ds-help")
697 (synopsis "Utilities for parsing and creating datastore keys")
698 (description
699 "@code{go-ipfs-ds-help} provides utilities for parsing and creating datastore
700keys used by @code{go-ipfs} (Kubo).")
701 (license license:expat)))
702
703(define-public go-github-com-ipfs-go-datastore
704 (package
705 (name "go-github-com-ipfs-go-datastore")
706 (version "0.9.1")
707 (source
708 (origin
709 (method git-fetch)
710 (uri (git-reference
711 (url "https://github.com/ipfs/go-datastore")
712 (commit (string-append "v" version))))
713 (modules '((guix build utils)))
714 (snippet
715 #~(begin
716 ;; Submodules with their own go.mod files and packaged separately:
717 ;;
718 ;; - github.com/ipfs/go-datastore/fuzz
719 (delete-file-recursively "fuzz")))
720 (file-name (git-file-name name version))
721 (sha256
722 (base32 "0di34lwvp4smzm6xwg26bz8f4hsyqhbq5n4cs8ppf2k8vaazb1ip"))))
723 (build-system go-build-system)
724 (arguments
725 (list
726 #:import-path "github.com/ipfs/go-datastore"
727 #:phases
728 #~(modify-phases %standard-phases
729 (add-after 'unpack 'remove-examples
730 (lambda* (#:key tests? import-path #:allow-other-keys)
731 (with-directory-excursion (string-append "src/" import-path)
732 (for-each delete-file-recursively
733 (list "examples"))))))))
734 (native-inputs
735 (list go-github-com-stretchr-testify))
736 (propagated-inputs
737 (list go-github-com-google-uuid
738 go-github-com-ipfs-go-detect-race
739 go-github-com-ipfs-go-ipfs-delay
740 go-go-opentelemetry-io-otel
741 go-go-opentelemetry-io-otel-trace))
742 (home-page "https://github.com/ipfs/go-datastore")
743 (synopsis "Key-value datastore interfaces")
744 (description
745 "Datastore is a generic layer of abstraction for data store and database access.
746It is a simple API with the aim to enable application development in a
747datastore-agnostic way, allowing datastores to be swapped seamlessly without
748changing application code. Thus, one can leverage different datastores with
749different strengths without committing the application to one datastore
750throughout its lifetime.")
751 (license license:expat)))
752
753(define-public go-github-com-ipfs-go-ds-badger
754 (package
755 (name "go-github-com-ipfs-go-ds-badger")
756 (version "0.3.4")
757 (source
758 (origin
759 (method git-fetch)
760 (uri (git-reference
761 (url "https://github.com/ipfs/go-ds-badger")
762 (commit (string-append "v" version))))
763 (file-name (git-file-name name version))
764 (sha256
765 (base32 "0ywq8cs6yf5vqfbw6rd5pw79sqljd87qi0ykv4gg736s7g7mkjr6"))))
766 (build-system go-build-system)
767 (arguments
768 (list
769 ;; XXX: Tests time out, figure out workaround.
770 #:tests? #f
771 #:import-path "github.com/ipfs/go-ds-badger"))
772 (propagated-inputs
773 (list go-github-com-dgraph-io-badger
774 go-github-com-ipfs-go-datastore
775 go-github-com-ipfs-go-log-v2
776 go-github-com-jbenet-goprocess))
777 (home-page "https://github.com/ipfs/go-ds-badger")
778 (synopsis "Datastore implementation using badger as backend")
779 (description
780 "This package provides a @acronym{DS, Data Store} implementation backed
781by @url{https://dgraph.io/docs/badger,Badger}.")
782 (license license:expat)))
783
784(define-public go-github-com-ipfs-go-ds-leveldb
785 (package
786 (name "go-github-com-ipfs-go-ds-leveldb")
787 (version "0.5.0")
788 (source
789 (origin
790 (method git-fetch)
791 (uri (git-reference
792 (url "https://github.com/ipfs/go-ds-leveldb")
793 (commit (string-append "v" version))))
794 (file-name (git-file-name name version))
795 (sha256
796 (base32 "1hi7vmjpzzh00zcf0638rvgiqj4j8difz5kzr0pilr0z6zcb7dq3"))))
797 (build-system go-build-system)
798 (arguments
799 (list
800 #:import-path "github.com/ipfs/go-ds-leveldb"))
801 (propagated-inputs
802 (list go-github-com-ipfs-go-datastore go-github-com-syndtr-goleveldb))
803 (home-page "https://github.com/ipfs/go-ds-leveldb")
804 (synopsis "Implementation of go-datastore using leveldb")
805 (description
806 "This package implements the
807@url{https://github.com/ipfs/go-datastore,go-datastore} interface using a
808LevelDB backend.")
809 (license license:expat)))
810
811(define-public go-github-com-ipfs-go-detect-race
812 (package
813 (name "go-github-com-ipfs-go-detect-race")
814 (version "0.0.1")
815 (source
816 (origin
817 (method git-fetch)
818 (uri (git-reference
819 (url "https://github.com/ipfs/go-detect-race")
820 (commit (string-append "v" version))))
821 (file-name (git-file-name name version))
822 (sha256
823 (base32 "0rqb0q66d7z852j5mhlr025dz698c44w014g4mx587amr1rvwqna"))))
824 (build-system go-build-system)
825 (arguments
826 (list
827 #:import-path "github.com/ipfs/go-detect-race"))
828 (home-page "https://github.com/ipfs/go-detect-race")
829 (synopsis "Detect if compiled with race")
830 (description "Check if the race detector is running.")
831 (license license:expat)))
832
833(define-public go-github-com-ipfs-go-ipfs-exchange-interface
834 (package
835 (name "go-github-com-ipfs-go-ipfs-exchange-interface")
836 (version "0.2.1")
837 (source
838 (origin
839 (method git-fetch)
840 (uri (git-reference
841 (url "https://github.com/ipfs/go-ipfs-exchange-interface")
842 (commit (string-append "v" version))))
843 (file-name (git-file-name name version))
844 (sha256
845 (base32 "0h5jizhjq4yz9sikqc6yhv5gsb8fgv67v0qjzagyhfznfx8kwv1d"))))
846 (build-system go-build-system)
847 (arguments
848 (list
849 #:import-path "github.com/ipfs/go-ipfs-exchange-interface"))
850 (propagated-inputs
851 (list go-github-com-ipfs-go-block-format
852 go-github-com-ipfs-go-cid))
853 (home-page "https://github.com/ipfs/go-ipfs-exchange-interface")
854 (synopsis "The IPFS Exchange interface")
855 (description
856 "@code{go-ipfs-exchange-interface} defines the IPFS exchange interface.")
857 (license license:expat)))
858
859(define-public go-github-com-ipfs-go-ipfs-pq
860 (package
861 (name "go-github-com-ipfs-go-ipfs-pq")
862 (version "0.0.3")
863 (source
864 (origin
865 (method git-fetch)
866 (uri (git-reference
867 (url "https://github.com/ipfs/go-ipfs-pq")
868 (commit (string-append "v" version))))
869 (file-name (git-file-name name version))
870 (sha256
871 (base32 "0zi177lysf6f2zap9l0yxcw4r2xvjiji1yb1jzdmiif2ahvi0v84"))))
872 (build-system go-build-system)
873 (arguments
874 (list
875 #:import-path "github.com/ipfs/go-ipfs-pq"
876 ;; By using Go version higher than 1.21 one test keep failing with
877 ;; error: the values were not returned in sorted order.
878 #:test-flags #~(list "-skip" "TestCorrectnessOfPop")))
879 (home-page "https://github.com/ipfs/go-ipfs-pq")
880 (synopsis "Priority queue used by go-ipfs")
881 (description "Package pq implements a priority queue.")
882 (license license:expat)))
883
884(define-public go-github-com-ipfs-go-ipfs-redirects-file
885 (package
886 (name "go-github-com-ipfs-go-ipfs-redirects-file")
887 (version "0.1.1")
888 (source
889 (origin
890 (method git-fetch)
891 (uri (git-reference
892 (url "https://github.com/ipfs/go-ipfs-redirects-file")
893 (commit (string-append "v" version))))
894 (file-name (git-file-name name version))
895 (sha256
896 (base32 "16lisd5jbniang85jzfwfigw0kmz73913fsrfj49nh92mpw50qpz"))))
897 (build-system go-build-system)
898 (arguments
899 (list
900 #:import-path "github.com/ipfs/go-ipfs-redirects-file"))
901 (native-inputs
902 (list go-github-com-tj-assert))
903 (propagated-inputs
904 (list go-github-com-pkg-errors
905 go-github-com-ucarion-urlpath))
906 (home-page "https://github.com/ipfs/go-ipfs-redirects-file")
907 (synopsis "IPFS Web Gateway _redirects file format parser")
908 (description
909 "Package redirects provides Netlify style _redirects file format
910parsing.")
911 (license license:expat)))
912
913(define-public go-github-com-ipfs-go-ipfs-routing
914 (package
915 (name "go-github-com-ipfs-go-ipfs-routing")
916 (version "0.3.1")
917 (source
918 (origin
919 (method git-fetch)
920 (uri (git-reference
921 (url "https://github.com/ipfs/go-ipfs-routing")
922 (commit (string-append "v" version))))
923 (file-name (git-file-name name version))
924 (sha256
925 (base32 "0j5pyp35z0jnqzz7iiknqx3234swqrpqz478ng8al3b6gqaza9ks"))))
926 (build-system go-build-system)
927 (arguments
928 (list
929 #:skip-build? #t
930 #:import-path "github.com/ipfs/go-ipfs-routing"
931 ;; One test fails with error: panic: protobuf tag not enough fields in
932 ;; Record.state.
933 #:test-flags #~(list "-skip" "TestOfflineRouterStorage")))
934 (native-inputs
935 (list go-github-com-libp2p-go-libp2p-testing))
936 (propagated-inputs
937 (list go-github-com-gogo-protobuf
938 go-github-com-ipfs-go-cid
939 go-github-com-ipfs-go-datastore
940 go-github-com-ipfs-go-ipfs-delay
941 go-github-com-ipfs-go-ipfs-ds-help
942 go-github-com-ipfs-go-ipfs-util
943 go-github-com-ipfs-go-log
944 go-github-com-libp2p-go-libp2p
945 go-github-com-libp2p-go-libp2p-record
946 go-github-com-multiformats-go-multiaddr
947 go-github-com-multiformats-go-multihash))
948 (home-page "https://github.com/ipfs/go-ipfs-routing")
949 (synopsis "P2P routing implementations used in IPFS")
950 (description
951 "This package provides P2P routing implementations for IPFS
952development.")
953 (license license:expat)))
954
955(define-public go-github-com-ipfs-go-ipfs-util
956 (package
957 (name "go-github-com-ipfs-go-ipfs-util")
958 (version "0.0.3")
959 (source
960 (origin
961 (method git-fetch)
962 (uri (git-reference
963 (url "https://github.com/ipfs/go-ipfs-util")
964 (commit (string-append "v" version))))
965 (file-name (git-file-name name version))
966 (sha256
967 (base32 "0x80c6a50zcv473xx0b39sz2xkwpiw3nmmjf51k5x7a4rx0rgvx4"))))
968 (build-system go-build-system)
969 (propagated-inputs (list go-github-com-mr-tron-base58
970 go-github-com-multiformats-go-multihash))
971 (arguments
972 (list
973 #:import-path "github.com/ipfs/go-ipfs-util"))
974 (home-page "https://github.com/ipfs/go-ipfs-util")
975 (synopsis "Common utilities used by @code{go-ipfs} and related packages")
976 (description
977 "Common utilities used by @code{go-ipfs} and other related Go packages.")
978 (license license:expat)))
979
980(define-public go-github-com-ipfs-go-ipld-cbor
981 (package
982 (name "go-github-com-ipfs-go-ipld-cbor")
983 (version "0.1.0")
984 (source
985 (origin
986 (method git-fetch)
987 (uri (git-reference
988 (url "https://github.com/ipfs/go-ipld-cbor")
989 (commit (string-append "v" version))))
990 (file-name (git-file-name name version))
991 (sha256
992 (base32 "0yxk4sbf1fk9aaizzpz3h30049wqvaz0s3jnbdd5akhj7wg89h21"))))
993 (build-system go-build-system)
994 (arguments
995 (list
996 #:import-path "github.com/ipfs/go-ipld-cbor"))
997 (propagated-inputs
998 (list go-github-com-ipfs-go-block-format
999 go-github-com-ipfs-go-cid
1000 go-github-com-ipfs-go-ipfs-util
1001 go-github-com-ipfs-go-ipld-format
1002 go-github-com-multiformats-go-multihash
1003 go-github-com-polydawn-refmt
1004 go-github-com-whyrusleeping-cbor-gen))
1005 (home-page "https://github.com/ipfs/go-ipld-cbor")
1006 (synopsis "@acronym{Concise Binary Object Representation, CBOR}
1007implementation of @code{go-ipld-format}")
1008 (description
1009 "An implementation of a @url{https://cbor.io/, CBOR} encoded merkledag object.")
1010 (license license:expat)))
1011
1012(define-public go-github-com-ipfs-go-ipld-format
1013 (package
1014 (name "go-github-com-ipfs-go-ipld-format")
1015 (version "0.6.0")
1016 (source
1017 (origin
1018 (method git-fetch)
1019 (uri (git-reference
1020 (url "https://github.com/ipfs/go-ipld-format")
1021 (commit (string-append "v" version))))
1022 (file-name (git-file-name name version))
1023 (sha256
1024 (base32 "0zl172ncmx9h5z2p3d0j1377xm9glw4zfyamks31p0pvvx2kyn7c"))))
1025 (build-system go-build-system)
1026 (arguments
1027 (list
1028 #:import-path "github.com/ipfs/go-ipld-format"))
1029 (propagated-inputs
1030 (list go-github-com-multiformats-go-multihash
1031 go-github-com-ipfs-go-block-format
1032 go-github-com-ipfs-go-cid))
1033 (home-page "https://github.com/ipfs/go-ipld-format")
1034 (synopsis "IPLD Node and Resolver interfaces in Go")
1035 (description
1036 "@code{go-ipld-format} is a set of interfaces that a type needs to implement in
1037order to be a part of the @acronym{IPLD, InterPlanetary Linked Data} merkle-forest.")
1038 (license license:expat)))
1039
1040(define-public go-github-com-ipfs-go-ipld-git
1041 (package
1042 (name "go-github-com-ipfs-go-ipld-git")
1043 (version "0.1.1")
1044 (source
1045 (origin
1046 (method git-fetch)
1047 (uri (git-reference
1048 (url "https://github.com/ipfs/go-ipld-git")
1049 (commit (string-append "v" version))))
1050 (file-name (git-file-name name version))
1051 (sha256
1052 (base32 "1v52qzgmx7qym0qzkzkry2kfj58f9hh7c8qycg74sqbd9zb1ynjj"))))
1053 (build-system go-build-system)
1054 (arguments
1055 (list
1056 ;; XXX: It requires .git/objects, check if it's applicable to generate
1057 ;; git repo during check phase with make-test-repo.sh.
1058 #:tests? #f
1059 #:import-path "github.com/ipfs/go-ipld-git"
1060 #:phases
1061 #~(modify-phases %standard-phases
1062 (add-after 'unpack 'remove-test-data-files
1063 (lambda* (#:key import-path #:allow-other-keys)
1064 (with-directory-excursion (string-append "src/" import-path)
1065 (for-each delete-file
1066 (list "testdata.tar.gz"
1067 "codecov.yml"
1068 "make-test-repo.sh"))))))))
1069 (propagated-inputs
1070 (list go-github-com-multiformats-go-multihash
1071 go-github-com-ipld-go-ipld-prime
1072 go-github-com-ipfs-go-cid
1073 go-github-com-ipfs-go-block-format))
1074 (home-page "https://github.com/ipfs/go-ipld-git")
1075 (synopsis "IPLD handlers for git objects")
1076 (description
1077 "This is an IPLD codec which handles git objects. Objects are transformed into
1078IPLD graph as detailed below. Objects are demonstrated here using both
1079@url{https://ipld.io/docs/schemas/,IPLD Schemas} and example JSON forms.")
1080 (license license:expat)))
1081
1082(define-public go-github-com-ipfs-go-ipld-legacy
1083 (package
1084 (name "go-github-com-ipfs-go-ipld-legacy")
1085 (version "0.2.1")
1086 (source
1087 (origin
1088 (method git-fetch)
1089 (uri (git-reference
1090 (url "https://github.com/ipfs/go-ipld-legacy")
1091 (commit (string-append "v" version))))
1092 (file-name (git-file-name name version))
1093 (sha256
1094 (base32 "0sc2zc3lyxy30fzynwdpfrl8jhh1ynwixn1crrv8hzn93yix6550"))))
1095 (build-system go-build-system)
1096 (arguments
1097 (list
1098 #:import-path "github.com/ipfs/go-ipld-legacy"))
1099 (native-inputs
1100 (list go-github-com-stretchr-testify))
1101 (propagated-inputs
1102 (list go-github-com-ipfs-go-block-format
1103 go-github-com-ipfs-go-cid
1104 go-github-com-ipfs-go-ipld-format
1105 go-github-com-ipld-go-ipld-prime))
1106 (home-page "https://github.com/ipfs/go-ipld-legacy")
1107 (synopsis "Translation layer for IPLD legacy code")
1108 (description
1109 "@code{go-ipld-format} is a translation layer between
1110@code{go-ipld-prime} nodes and @code{go-ipld-format} legacy interface.")
1111 (license (list license:expat license:asl2.0))))
1112
1113(define-public go-github-com-ipfs-go-libdht
1114 (package
1115 (name "go-github-com-ipfs-go-libdht")
1116 (version "0.5.0")
1117 (source
1118 (origin
1119 (method git-fetch)
1120 (uri (git-reference
1121 (url "https://github.com/ipfs/go-libdht")
1122 (commit (string-append "v" version))))
1123 (file-name (git-file-name name version))
1124 (sha256
1125 (base32 "139zzvs9c65k6agfpy412y9bb4pfxdmwvwjbvndx9gd615qhxzak"))))
1126 (build-system go-build-system)
1127 (arguments
1128 (list
1129 #:skip-build? #t
1130 #:import-path "github.com/ipfs/go-libdht"))
1131 (native-inputs
1132 (list go-github-com-stretchr-testify))
1133 (home-page "https://github.com/ipfs/go-libdht")
1134 (synopsis "go-libdht")
1135 (description
1136 "@code{go-libdht} is a generic toolbox designed for the implementation
1137and experimentation of @acronym{Distributed Hash Tables, DHT} in Go. It
1138establishes foundational types and interfaces applicable across a broad
1139spectrum of DHTs, especially those sharing a similar topology. By offering
1140reusable components like keys and routing tables, @code{go-libdht} streamlines
1141the DHT implementation process. Using @code{go-libdht}, developers can
1142seamlessly craft their own DHTs using the provided modular components.")
1143 (license (list license:expat license:asl2.0))))
1144
1145(define-public go-github-com-ipfs-go-metrics-interface
1146 (package
1147 (name "go-github-com-ipfs-go-metrics-interface")
1148 (version "0.3.0")
1149 (source
1150 (origin
1151 (method git-fetch)
1152 (uri (git-reference
1153 (url "https://github.com/ipfs/go-metrics-interface")
1154 (commit (string-append "v" version))))
1155 (file-name (git-file-name name version))
1156 (sha256
1157 (base32 "0d7jh9aclmxq4z5hynn4lc0ab8c8rip92xkc224vjw2y7kg6jyvg"))))
1158 (build-system go-build-system)
1159 (arguments
1160 (list
1161 #:import-path "github.com/ipfs/go-metrics-interface"))
1162 (propagated-inputs
1163 (list go-github-com-ipfs-go-cid
1164 go-github-com-ipfs-go-datastore
1165 go-github-com-multiformats-go-base32
1166 go-github-com-multiformats-go-multihash))
1167 (home-page "https://github.com/ipfs/go-metrics-interface")
1168 ;; XXX: The project neither has no a proper description, nor a README, see
1169 ;; <https://github.com/ipfs/go-metrics-interface/issues/1>.
1170 (synopsis "Metrics interface for IPFS")
1171 (description
1172 "Metrics interface for IPFS (Kubo).")
1173 (license license:expat)))
1174
1175(define-public go-github-com-ipfs-go-metrics-prometheus
1176 (package
1177 (name "go-github-com-ipfs-go-metrics-prometheus")
1178 (version "0.1.0")
1179 (source
1180 (origin
1181 (method git-fetch)
1182 (uri (git-reference
1183 (url "https://github.com/ipfs/go-metrics-prometheus")
1184 (commit (string-append "v" version))))
1185 (file-name (git-file-name name version))
1186 (sha256
1187 (base32 "12bvlg1pnwxyfn8paxf0viky5mv5isdql29mflvjhgs5g48mnc3s"))))
1188 (build-system go-build-system)
1189 (arguments
1190 (list
1191 #:import-path "github.com/ipfs/go-metrics-prometheus"))
1192 (propagated-inputs
1193 (list go-github-com-ipfs-go-log-v2
1194 go-github-com-ipfs-go-metrics-interface
1195 go-github-com-prometheus-client-golang))
1196 (home-page "https://github.com/ipfs/go-metrics-prometheus")
1197 (synopsis "Prometheus bindings for go-metrics-interface")
1198 (description
1199 "This package provides Prometheus bindings used in IPFS development.")
1200 (license license:expat)))
1201
1202(define-public go-github-com-ipfs-go-peertaskqueue
1203 (package
1204 (name "go-github-com-ipfs-go-peertaskqueue")
1205 (version "0.8.2")
1206 (source
1207 (origin
1208 (method git-fetch)
1209 (uri (git-reference
1210 (url "https://github.com/ipfs/go-peertaskqueue")
1211 (commit (string-append "v" version))))
1212 (file-name (git-file-name name version))
1213 (sha256
1214 (base32 "0mz6kj0d23p7hfmcrh8l0khj6gx9f58v2ls5336im6yw4vkzr711"))))
1215 (build-system go-build-system)
1216 (arguments
1217 (list
1218 #:import-path "github.com/ipfs/go-peertaskqueue"))
1219 (propagated-inputs
1220 (list go-github-com-filecoin-project-go-clock
1221 go-github-com-ipfs-go-ipfs-pq
1222 go-github-com-libp2p-go-libp2p))
1223 (home-page "https://github.com/ipfs/go-peertaskqueue")
1224 (synopsis "Prioritized queue of abstract tasks distributed among peers")
1225 (description
1226 "This package implements a prioritized list of tasks to be executed on
1227peers.")
1228 (license (list license:asl2.0 license:expat))))
1229
1230(define-public go-github-com-ipfs-go-test
1231 (package
1232 (name "go-github-com-ipfs-go-test")
1233 (version "0.2.3")
1234 (source
1235 (origin
1236 (method git-fetch)
1237 (uri (git-reference
1238 (url "https://github.com/ipfs/go-test")
1239 (commit (string-append "v" version))))
1240 (file-name (git-file-name name version))
1241 (sha256
1242 (base32 "0f19bz83lnmp9qqmiz09b163sgrx5rganbv2ppxq9nrbk3b88d78"))))
1243 (build-system go-build-system)
1244 (arguments
1245 (list
1246 #:import-path "github.com/ipfs/go-test"))
1247 (native-inputs
1248 (list go-github-com-stretchr-testify))
1249 (propagated-inputs
1250 (list go-github-com-ipfs-go-block-format
1251 go-github-com-ipfs-go-cid
1252 go-github-com-libp2p-go-libp2p
1253 go-github-com-multiformats-go-multiaddr
1254 go-github-com-multiformats-go-multicodec
1255 go-github-com-multiformats-go-multihash))
1256 (home-page "https://github.com/ipfs/go-test")
1257 (synopsis "Testing utilty library for IPFS")
1258 (description
1259 "This package profides a test utility code used across many different
1260IPFS related projects.")
1261 (license (list license:asl2.0 license:expat))))
1262
1263(define-public go-github-com-ipfs-go-unixfsnode
1264 (package
1265 (name "go-github-com-ipfs-go-unixfsnode")
1266 (version "1.10.0")
1267 (source
1268 (origin
1269 (method git-fetch)
1270 (uri (git-reference
1271 (url "https://github.com/ipfs/go-unixfsnode")
1272 (commit (string-append "v" version))))
1273 (file-name (git-file-name name version))
1274 (sha256
1275 (base32 "0rn4x8f9a1ipwz0rg19ylbyh2s3q81vpnlan9yjscnfxx1r6gdbg"))))
1276 (build-system go-build-system)
1277 (arguments
1278 (list
1279 #:import-path "github.com/ipfs/go-unixfsnode"
1280 ;; Full test suites requires Box, which introduce cycle.
1281 #:test-subdirs #~(list ".")))
1282 (native-inputs
1283 (list go-github-com-stretchr-testify))
1284 (propagated-inputs
1285 (list ;; go-github-com-ipfs-boxo ; introduce cycle
1286 go-github-com-ipfs-go-bitfield
1287 go-github-com-ipfs-go-cid
1288 go-github-com-ipfs-go-ipld-format
1289 go-github-com-ipfs-go-test
1290 go-github-com-ipld-go-car-v2
1291 go-github-com-ipld-go-codec-dagpb
1292 go-github-com-ipld-go-ipld-prime
1293 go-github-com-multiformats-go-multicodec
1294 go-github-com-multiformats-go-multihash
1295 go-github-com-spaolacci-murmur3
1296 go-google-golang-org-protobuf))
1297 (home-page "https://github.com/ipfs/go-unixfsnode")
1298 (synopsis "ADL IPLD prime node implementation of protobuf")
1299 (description
1300 "This is an IPLD ADL that provides string based pathing for protobuf
1301nodes. The top level node behaves like a map where @code{LookupByString}
1302returns the Hash property on the Link in the protobufs list of Links whos Name
1303property matches the key. This should enable selector traversals that work
1304based of paths.")
1305 (license (list license:asl2.0 license:expat))))
1306
1307;; XXX: This repository has been archived by the owner on Jun 20, 2023. It is
1308;; now read-only. We highly recommend switching to the maintained version at
1309;; https://github.com/ipfs/boxo/tree/main/verifcid. It's still in use by some
1310;; dependencies chain for unbundled inputs in Kubo.
1311(define-public go-github-com-ipfs-go-verifcid
1312 (package
1313 (name "go-github-com-ipfs-go-verifcid")
1314 (version "0.0.3")
1315 (source
1316 (origin
1317 (method git-fetch)
1318 (uri (git-reference
1319 (url "https://github.com/ipfs/go-verifcid")
1320 (commit (string-append "v" version))))
1321 (file-name (git-file-name name version))
1322 (sha256
1323 (base32 "05i6wp2nln0mlr1pivmva7j6bwa09k7jl04acx1lw65h4d9nxsjm"))))
1324 (build-system go-build-system)
1325 (arguments
1326 (list
1327 #:import-path "github.com/ipfs/go-verifcid"))
1328 (native-inputs
1329 (list go-github-com-stretchr-testify))
1330 (propagated-inputs
1331 (list go-github-com-ipfs-go-cid go-github-com-multiformats-go-multihash))
1332 (home-page "https://github.com/ipfs/go-verifcid")
1333 (synopsis "CID security code")
1334 (description
1335 "@code{go-verifcid} provides @url{https://github.com/ipld/cid, CID} security
1336code prior to it getting merged into @code{go-cid}.")
1337 ;; This library is dual-licensed under Apache 2.0 and MIT terms:
1338 ;; LICENSE-MIT and LICENSE-APACHE.
1339 (license (list license:expat license:asl2.0))))
1340
1341(define-public go-github-com-ipfs-shipyard-nopfs
1342 (package
1343 (name "go-github-com-ipfs-shipyard-nopfs")
1344 (version "0.0.14")
1345 (source
1346 (origin
1347 (method git-fetch)
1348 (uri (git-reference
1349 (url "https://github.com/ipfs-shipyard/nopfs")
1350 (commit (string-append "v" version))))
1351 (file-name (git-file-name name version))
1352 (sha256
1353 (base32 "1qbp7hny0v6n74agh1ym98ndnnr53aq1hd6ybm5q214fah7k23r7"))
1354 (modules '((guix build utils)))
1355 (snippet
1356 #~(begin
1357 ;; Submodules with their own go.mod files and packaged separately:
1358 ;;
1359 ;; - github.com/ipfs-shipyard/nopfs/ipfs
1360 ;; - github.com/ipfs-shipyard/nopfs/nopfs-kubo-plugin
1361 (for-each delete-file-recursively
1362 (list "ipfs" "nopfs-kubo-plugin"))))))
1363 (build-system go-build-system)
1364 (arguments
1365 (list
1366 #:import-path "github.com/ipfs-shipyard/nopfs"))
1367 (propagated-inputs
1368 (list go-github-com-fsnotify-fsnotify
1369 go-github-com-ipfs-boxo
1370 go-github-com-ipfs-go-cid
1371 go-github-com-ipfs-go-log-v2
1372 go-github-com-multiformats-go-multicodec
1373 go-github-com-multiformats-go-multihash
1374 go-go-uber-org-multierr
1375 go-gopkg-in-yaml-v3))
1376 (home-page "https://github.com/ipfs-shipyard/nopfs")
1377 (synopsis "Content-blocking-layer capabilities for IPFS")
1378 (description
1379 "Package nopfs implements content blocking for the IPFS stack.")
1380 (license license:asl2.0)))
1381
1382(define-public go-github-com-ipfs-shipyard-nopfs-ipfs
1383 (package
1384 (name "go-github-com-ipfs-shipyard-nopfs-ipfs")
1385 (version "0.25.0")
1386 (source
1387 (origin
1388 (method git-fetch)
1389 (uri (git-reference
1390 (url "https://github.com/ipfs-shipyard/nopfs")
1391 (commit (go-version->git-ref version
1392 #:subdir "ipfs"))))
1393 (file-name (git-file-name name version))
1394 (sha256
1395 (base32 "00lwizzdfdx6kynxddal3all6q9dhwqanpkw0d0vxlwik4nkvxa5"))
1396 (modules '((guix build utils)))
1397 (snippet
1398 #~(begin (delete-all-but "." "ipfs")))))
1399 (build-system go-build-system)
1400 (arguments
1401 (list
1402 #:embed-files #~(list "sorted-network-list.bin")
1403 #:import-path "github.com/ipfs-shipyard/nopfs/ipfs"
1404 #:unpack-path "github.com/ipfs-shipyard/nopfs"))
1405 (propagated-inputs
1406 (list go-github-com-ipfs-boxo
1407 go-github-com-ipfs-go-block-format
1408 go-github-com-ipfs-go-cid
1409 go-github-com-ipfs-go-log-v2
1410 go-github-com-ipfs-shipyard-nopfs
1411 go-github-com-ipld-go-ipld-prime
1412 go-github-com-libp2p-go-libp2p
1413 go-github-com-libp2p-go-libp2p-kad-dht))
1414 (home-page "https://github.com/ipfs-shipyard/nopfs")
1415 (synopsis "IPFS library helpers and wrappers")
1416 (description
1417 "Package ipfs provides wrapper implementations of key layers in the
1418go-ipfs stack to enable content-blocking.")
1419 (license license:asl2.0)))
1420
1421(define-public go-github-com-ipld-go-car-v2
1422 (package
1423 (name "go-github-com-ipld-go-car-v2")
1424 (version "2.14.2")
1425 (source
1426 (origin
1427 (method git-fetch)
1428 (uri (git-reference
1429 (url "https://github.com/ipld/go-car")
1430 (commit (string-append "v" version))))
1431 (file-name (git-file-name name version))
1432 (sha256
1433 (base32 "08zkz73r76va2hvrg6gixc0nfdwwsigdncsl9h6b5ibb11zwa0gn"))))
1434 (build-system go-build-system)
1435 (arguments
1436 (list
1437 ;; Version 2 is part of the same source and located in "v2" directory.
1438 #:import-path "github.com/ipld/go-car/v2"
1439 #:unpack-path "github.com/ipld/go-car"
1440 #:phases
1441 #~(modify-phases %standard-phases
1442 ;; Tests requiring github.com/ipfs/go-unixfsnode and indrodusing
1443 ;; cylcle.
1444 (add-before 'check 'remove-failing-test-files
1445 (lambda* (#:key unpack-path #:allow-other-keys)
1446 (with-directory-excursion (string-append "src/" unpack-path)
1447 (for-each delete-file
1448 (list "v2/selective_test.go"
1449 "v2/writer_test.go"))))))))
1450 (native-inputs
1451 (list go-github-com-stretchr-testify))
1452 (propagated-inputs
1453 (list go-github-com-ipfs-go-block-format
1454 go-github-com-ipfs-go-cid
1455 go-github-com-ipfs-go-ipld-cbor
1456 go-github-com-ipfs-go-ipld-format
1457 go-github-com-ipld-go-codec-dagpb
1458 go-github-com-ipld-go-ipld-prime
1459 go-github-com-multiformats-go-multicodec
1460 go-github-com-multiformats-go-multihash
1461 go-github-com-multiformats-go-varint
1462 go-github-com-petar-gollrb
1463 go-github-com-whyrusleeping-cbor
1464 go-golang-org-x-exp))
1465 (home-page "https://github.com/ipld/go-car")
1466 (synopsis "Content addressible archive utility")
1467 (description
1468 "Package car allows inspecting and reading CARv2 files, described at
1469@url{https://ipld.io/specs/transport/car}.")
1470 ;; This library is dual-licensed under Apache 2.0 and MIT terms.
1471 (license (list license:expat license:asl2.0))))
1472
1473(define-public go-github-com-ipld-go-codec-dagpb
1474 (package
1475 (name "go-github-com-ipld-go-codec-dagpb")
1476 (version "1.6.0")
1477 (source
1478 (origin
1479 (method git-fetch)
1480 (uri (git-reference
1481 (url "https://github.com/ipld/go-codec-dagpb")
1482 (commit (string-append "v" version))))
1483 (file-name (git-file-name name version))
1484 (sha256
1485 (base32 "1jbrwbgr222wsi95gdflbj350csja6k8vphdq7c9bm50ipr8bvkq"))))
1486 (build-system go-build-system)
1487 (arguments
1488 (list
1489 #:import-path "github.com/ipld/go-codec-dagpb"))
1490 (propagated-inputs
1491 (list go-github-com-ipfs-go-cid
1492 go-github-com-ipld-go-ipld-prime
1493 go-google-golang-org-protobuf))
1494 (home-page "https://github.com/ipld/go-codec-dagpb/")
1495 (synopsis "Implementation of the DAG-PB spec for Go")
1496 (description
1497 "An implementation of the @url{https://ipld.io/, IPLD DAG-PB} spec for
1498@code{go-ipld-prime}.")
1499 (license (list license:expat license:asl2.0))))
1500
1501(define-public go-github-com-ipld-go-ipld-prime
1502 (package
1503 (name "go-github-com-ipld-go-ipld-prime")
1504 (version "0.21.0")
1505 (source
1506 (origin
1507 (method git-fetch)
1508 (uri (git-reference
1509 (url "https://github.com/ipld/go-ipld-prime")
1510 (commit (string-append "v" version))))
1511 (file-name (git-file-name name version))
1512 (sha256
1513 (base32 "1ycb08h0hvq3mw3sbjkjzp5sfcxmss155jxiv5gjg7myxvzk91ja"))))
1514 (build-system go-build-system)
1515 (arguments
1516 (list
1517 #:import-path "github.com/ipld/go-ipld-prime"
1518 ;; XXX: More input requires to cover all shipped go packages.
1519 #:test-subdirs #~(list ".")
1520 #:phases
1521 #~(modify-phases %standard-phases
1522 (add-after 'unpack 'copy-ipld-specfs
1523 (lambda* (#:key import-path #:allow-other-keys)
1524 (copy-recursively
1525 (string-append #$(this-package-native-input
1526 "specification-ipld")
1527 "/share/ipld/")
1528 (string-append "src/" import-path "/ipld")))))))
1529 (native-inputs
1530 (list go-github-com-frankban-quicktest
1531 go-github-com-warpfork-go-testmark
1532 specification-ipld))
1533 (propagated-inputs
1534 (list go-github-com-google-go-cmp
1535 go-github-com-ipfs-go-block-format
1536 go-github-com-ipfs-go-cid
1537 go-github-com-multiformats-go-multicodec
1538 go-github-com-multiformats-go-multihash
1539 go-github-com-polydawn-refmt
1540 go-gopkg-in-yaml-v2))
1541 (home-page "https://github.com/ipld/go-ipld-prime")
1542 (synopsis "Golang interfaces for the IPLD Data Model")
1543 (description
1544 "@code{go-ipld-prime} is an implementation of the IPLD spec interfaces, a
1545batteries-included codec implementations of IPLD for CBOR and JSON, and tooling for
1546basic operations on IPLD objects (traversals, etc).")
1547 (license license:expat)))
1548
1549(define-public go-github-com-ipfs-go-log-v2
1550 (package
1551 (name "go-github-com-ipfs-go-log-v2")
1552 (version "2.9.1")
1553 (source
1554 (origin
1555 (method git-fetch)
1556 (uri (git-reference
1557 (url "https://github.com/ipfs/go-log")
1558 (commit (string-append "v" version))))
1559 (file-name (git-file-name name version))
1560 (sha256
1561 (base32 "16sm3y7n05gjfzc77d38iscq3pdg0kr3p95izxp70y8pfrpfacs5"))))
1562 (build-system go-build-system)
1563 (arguments
1564 (list
1565 #:import-path "github.com/ipfs/go-log/v2"))
1566 (native-inputs
1567 (list go-github-com-stretchr-testify))
1568 (propagated-inputs
1569 (list go-github-com-mattn-go-isatty
1570 go-go-uber-org-zap))
1571 (home-page "https://github.com/ipfs/go-log")
1572 (synopsis "Logging library used by @code{go-ipfs}")
1573 (description
1574 "@code{go-log} wraps @url{https://github.com/uber-go/zap, zap} to provide
1575a logging facade. @code{go-log} manages logging instances and allows for
1576their levels to be controlled individually.")
1577 (license license:expat)))
1578
1579(define-public go-github-com-ipfs-go-log
1580 (package
1581 (inherit go-github-com-ipfs-go-log-v2)
1582 (name "go-github-com-ipfs-go-log")
1583 (version "1.0.5")
1584 (source
1585 (origin
1586 (method git-fetch)
1587 (uri (git-reference
1588 (url "https://github.com/ipfs/go-log")
1589 (commit (string-append "v" version))))
1590 (file-name (git-file-name name version))
1591 (sha256
1592 (base32 "0gj2yqrv6wgpkv6f9c1anmw5kwg59plv0jrcxb3zmjrnk8fsn1jr"))))
1593 (propagated-inputs
1594 (list go-github-com-gogo-protobuf
1595 go-github-com-ipfs-go-log-v2
1596 go-github-com-opentracing-opentracing-go
1597 go-go-uber-org-zap))
1598 (arguments
1599 (list
1600 #:import-path "github.com/ipfs/go-log"))))
1601
1602(define-public go-github-com-ipshipyard-p2p-forge
1603 (package
1604 (name "go-github-com-ipshipyard-p2p-forge")
1605 (version "0.5.1")
1606 (source
1607 (origin
1608 (method git-fetch)
1609 (uri (git-reference
1610 (url "https://github.com/ipshipyard/p2p-forge")
1611 (commit (string-append "v" version))))
1612 (file-name (git-file-name name version))
1613 (sha256
1614 (base32 "0qh820v738fn1k5scd99v230s4xcz26wg2s41farirhdjx8lmzc6"))))
1615 (build-system go-build-system)
1616 (arguments
1617 (list
1618 ;; TODO: Enalbe when all missing inputs are packaged, using for Kubo as
1619 ;; source only package.
1620 #:skip-build? #t
1621 #:tests? #f
1622 #:import-path "github.com/ipshipyard/p2p-forge"))
1623 (propagated-inputs
1624 (list go-github-com-aws-aws-sdk-go
1625 go-github-com-caddyserver-certmagic
1626 ;; go-github-com-coredns-caddy
1627 ;; go-github-com-coredns-coredns
1628 go-github-com-felixge-httpsnoop
1629 go-github-com-ipfs-go-datastore
1630 go-github-com-ipfs-go-ds-badger4
1631 go-github-com-ipfs-go-ds-dynamodb
1632 go-github-com-ipfs-go-log-v2
1633 go-github-com-joho-godotenv
1634 go-github-com-letsencrypt-pebble-v2
1635 go-github-com-libp2p-go-libp2p
1636 go-github-com-mholt-acmez-v3
1637 go-github-com-miekg-dns
1638 go-github-com-multiformats-go-multiaddr
1639 go-github-com-multiformats-go-multiaddr-dns
1640 go-github-com-multiformats-go-multibase
1641 go-github-com-prometheus-client-golang
1642 go-github-com-slok-go-http-metrics
1643 go-go-uber-org-zap))
1644 (home-page "https://github.com/ipshipyard/p2p-forge")
1645 (synopsis "Authoritative DNS server for distributing DNS subdomains to libp2p peers")
1646 (description
1647 "This package provides an Authoritative DNS server and HTTP+libp2p API
1648for distributing DNS subdomains with CA-signed TLS certificates to libp2p
1649peers.")
1650 (license (list license:asl2.0 license:expat))))
1651
1652(define-public go-github-com-libp2p-go-cidranger
1653 (package
1654 (name "go-github-com-libp2p-go-cidranger")
1655 (version "1.1.0")
1656 (source
1657 (origin
1658 (method git-fetch)
1659 (uri (git-reference
1660 (url "https://github.com/libp2p/go-cidranger")
1661 (commit (string-append "v" version))))
1662 (file-name (git-file-name name version))
1663 (sha256
1664 (base32 "05hzlk5hx7qna5znr3q1crr0qb7h8yrv1v96pj015dh0kbdkdaba"))))
1665 (build-system go-build-system)
1666 (arguments
1667 (list
1668 ;; XXX: Check if the most of the tests may be enabled:
1669 ;; src/github.com/libp2p/go-cidranger/trie_test.go:557:8: cannot use
1670 ;; 4294967295 (untyped int constant) as int value in assignment
1671 ;; (overflows).
1672 #:tests? (and (target-64bit?)
1673 (not (%current-target-system)))
1674 #:import-path "github.com/libp2p/go-cidranger"))
1675 (native-inputs
1676 (list go-github-com-stretchr-testify))
1677 (propagated-inputs
1678 (list go-github-com-ipfs-go-detect-race))
1679 (home-page "https://github.com/libp2p/go-cidranger")
1680 (synopsis "Fast IP to CIDR lookup in Golang")
1681 (description
1682 "Fast IP to @url{https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing,
1683CIDR} block(s) lookup using trie in Golang, inspired by
1684@url{https://vincent.bernat.im/en/blog/2017-ipv4-route-lookup-linux, IPv4
1685route lookup Linux}. Possible use cases include detecting if a IP address is
1686from published cloud provider CIDR blocks (e.g. 52.95.110.1 is contained in
1687published AWS Route53 CIDR 52.95.110.0/24), IP routing rules, etc.")
1688 (license license:expat)))
1689
1690(define-public go-github-com-libp2p-go-doh-resolver
1691 (package
1692 (name "go-github-com-libp2p-go-doh-resolver")
1693 (version "0.4.0")
1694 (source
1695 (origin
1696 (method git-fetch)
1697 (uri (git-reference
1698 (url "https://github.com/libp2p/go-doh-resolver")
1699 (commit (string-append "v" version))))
1700 (file-name (git-file-name name version))
1701 (sha256
1702 (base32 "0asni7f3gd65bjfqz99fqchz9y75cpgmfwkkhsbq0y2dydagw666"))))
1703 (build-system go-build-system)
1704 (arguments
1705 (list
1706 #:import-path "github.com/libp2p/go-doh-resolver"))
1707 (native-inputs
1708 (list go-github-com-stretchr-testify))
1709 (propagated-inputs
1710 (list go-github-com-ipfs-go-log-v2
1711 go-github-com-miekg-dns
1712 go-github-com-multiformats-go-multiaddr-dns))
1713 (home-page "https://github.com/libp2p/go-doh-resolver")
1714 (synopsis "DNS over HTTPS resolver")
1715 (description
1716 "This package provides an implementation DNS over HTTPS resolver as
1717specified in @url{https://datatracker.ietf.org/doc/html/rfc8484, RFC 8484}.")
1718 (license license:expat)))
1719
1720(define-public go-github-com-libp2p-go-libp2p
1721 (package
1722 (name "go-github-com-libp2p-go-libp2p")
1723 (version "0.48.0")
1724 (source
1725 (origin
1726 (method git-fetch)
1727 (uri (git-reference
1728 (url "https://github.com/libp2p/go-libp2p")
1729 (commit (string-append "v" version))))
1730 (file-name (git-file-name name version))
1731 (sha256
1732 (base32 "11b1g6nhcrkkx00zga6i42b95zj4p3zjf6rnv18yv2898hhla400"))
1733 (modules '((guix build utils)))
1734 (snippet
1735 #~(begin
1736 ;; Submodules with their own go.mod files and packaged separately:
1737 ;;
1738 ;; - github.com/libp2p/go-libp2p/scripts/test_analysis
1739 ;; - github.com/libp2p/go-libp2p/test-plans/m/v2
1740 (for-each delete-file-recursively
1741 (list "scripts/test_analysis" "test-plans"))))))
1742 (build-system go-build-system)
1743 (arguments
1744 (list
1745 #:embed-files #~(list "sorted-network-list.bin")
1746 #:import-path "github.com/libp2p/go-libp2p"
1747 ;; XXX: Check how to enable the most of the tests, see GitHub Actions
1748 ;; workflow files of the project.
1749 #:test-subdirs #~(list "core/..." ".")
1750 #:phases
1751 #~(modify-phases %standard-phases
1752 (add-after 'unpack 'remove-examples
1753 (lambda* (#:key import-path #:allow-other-keys)
1754 (with-directory-excursion (string-append "src/" import-path)
1755 (delete-file-recursively "examples")))))))
1756 (native-inputs
1757 (list go-github-com-libp2p-go-libp2p-testing
1758 go-github-com-stretchr-testify
1759 go-go-uber-org-mock
1760 go-github-com-marcopolo-simnet
1761 go-go-uber-org-goleak))
1762 (propagated-inputs
1763 (list go-filippo-io-keygen
1764 go-github-com-benbjohnson-clock
1765 go-github-com-davidlazar-go-crypto
1766 go-github-com-decred-dcrd-dcrec-secp256k1-v4
1767 go-github-com-flynn-noise
1768 go-github-com-gorilla-websocket
1769 go-github-com-hashicorp-golang-lru-arc-v2
1770 go-github-com-hashicorp-golang-lru-v2
1771 go-github-com-huin-goupnp
1772 go-github-com-ipfs-go-cid
1773 go-github-com-ipfs-go-datastore
1774 go-github-com-jackpal-go-nat-pmp
1775 go-github-com-jbenet-go-temp-err-catcher
1776 go-github-com-koron-go-ssdp
1777 go-github-com-libp2p-go-buffer-pool
1778 go-github-com-libp2p-go-flow-metrics
1779 go-github-com-libp2p-go-libp2p-asn-util
1780 go-github-com-libp2p-go-msgio
1781 go-github-com-libp2p-go-netroute
1782 go-github-com-libp2p-go-reuseport
1783 go-github-com-libp2p-go-yamux-v5
1784 go-github-com-libp2p-zeroconf-v2
1785 go-github-com-marten-seemann-tcp
1786 go-github-com-mikioh-tcpinfo
1787 go-github-com-mr-tron-base58
1788 go-github-com-multiformats-go-base32
1789 go-github-com-multiformats-go-multiaddr
1790 go-github-com-multiformats-go-multiaddr-dns
1791 go-github-com-multiformats-go-multiaddr-fmt
1792 go-github-com-multiformats-go-multibase
1793 go-github-com-multiformats-go-multicodec
1794 go-github-com-multiformats-go-multihash
1795 go-github-com-multiformats-go-multistream
1796 go-github-com-multiformats-go-varint
1797 go-github-com-pbnjay-memory
1798 go-github-com-pion-datachannel
1799 go-github-com-pion-ice-v4
1800 go-github-com-pion-logging
1801 go-github-com-pion-sctp
1802 go-github-com-pion-stun-v3
1803 go-github-com-pion-webrtc-v4
1804 go-github-com-prometheus-client-golang
1805 go-github-com-prometheus-client-model
1806 go-github-com-quic-go-quic-go
1807 go-github-com-quic-go-webtransport-go
1808 go-go-uber-org-fx
1809 go-golang-org-x-crypto
1810 go-golang-org-x-sync
1811 go-golang-org-x-sys
1812 go-golang-org-x-time
1813 go-golang-org-x-tools
1814 go-google-golang-org-protobuf))
1815 (home-page "https://github.com/libp2p/go-libp2p")
1816 (synopsis "LIBP2P networking stack implementation in Golang")
1817 (description
1818 "This package provides a networking stack and library modularized out of
1819@url{https://github.com/ipfs/ipfs,The IPFS Project} as specified in
1820@url{https://github.com/libp2p/specs,libp2p}.")
1821 (license license:expat)))
1822
1823(define-public go-github-com-libp2p-go-libp2p-gostream
1824 (package
1825 (name "go-github-com-libp2p-go-libp2p-gostream")
1826 (version "0.6.0")
1827 (source
1828 (origin
1829 (method git-fetch)
1830 (uri (git-reference
1831 (url "https://github.com/libp2p/go-libp2p-gostream")
1832 (commit (string-append "v" version))))
1833 (file-name (git-file-name name version))
1834 (sha256
1835 (base32 "1zq5vhjj590azc1gwwiyqilf9ifxp8nz4hziz0fxs5ly2xhjj1mw"))))
1836 (build-system go-build-system)
1837 (arguments
1838 (list
1839 ;; XXX: Broken upstream, see
1840 ;; <https://github.com/libp2p/go-libp2p-gostream/issues/90>
1841 #:tests? #f
1842 #:import-path "github.com/libp2p/go-libp2p-gostream"
1843 ;; src/github.com/libp2p/go-libp2p-asn-util/asn.go:12:12: pattern
1844 ;; sorted-network-list.bin: cannot embed irregular file
1845 ;; sorted-network-list.bin
1846 #:embed-files #~(list "sorted-network-list\\.bin")))
1847 (native-inputs
1848 (list go-github-com-stretchr-testify))
1849 (propagated-inputs
1850 (list go-github-com-libp2p-go-libp2p
1851 go-github-com-multiformats-go-multiaddr))
1852 (home-page "https://github.com/libp2p/go-libp2p-gostream")
1853 (synopsis "Golang @code{net} wrappers for libp2p")
1854 (description
1855 "This package provides a replacement of the standard @code{net} stack in
1856Go with @url{https://github.com/libp2p/libp2p, LibP2P} streams.")
1857 (license license:expat)))
1858
1859(define-public go-github-com-libp2p-go-libp2p-http
1860 (package
1861 (name "go-github-com-libp2p-go-libp2p-http")
1862 (version "0.5.0")
1863 (source
1864 (origin
1865 (method git-fetch)
1866 (uri (git-reference
1867 (url "https://github.com/libp2p/go-libp2p-http")
1868 (commit (string-append "v" version))))
1869 (file-name (git-file-name name version))
1870 (sha256
1871 (base32 "0v65xjj1ljpx9bfwqivgncc6imrykw1dd8m2zvaqiygv0dirzkzn"))))
1872 (build-system go-build-system)
1873 (arguments
1874 (list
1875 ;; XXX: Broken upstream, see
1876 ;; <https://github.com/libp2p/go-libp2p-http/issues/94>
1877 #:tests? #f
1878 #:import-path "github.com/libp2p/go-libp2p-http"
1879 ;; src/github.com/libp2p/go-libp2p-asn-util/asn.go:12:12: pattern
1880 ;; sorted-network-list.bin: cannot embed irregular file
1881 ;; sorted-network-list.bin
1882 #:embed-files #~(list "sorted-network-list\\.bin")))
1883 (native-inputs
1884 (list go-github-com-stretchr-testify))
1885 (propagated-inputs
1886 (list go-github-com-libp2p-go-libp2p
1887 go-github-com-libp2p-go-libp2p-gostream
1888 go-github-com-multiformats-go-multiaddr))
1889 (home-page "https://github.com/libp2p/go-libp2p-http")
1890 (synopsis "HTTP on top of libp2p")
1891 (description
1892 "Package p2phttp allows to serve HTTP endpoints and make HTTP requests
1893through @url{https://github.com/libp2p/libp2p, LibP2P} using Go's standard
1894@code{http} and @code{net} stacks.")
1895 (license license:expat)))
1896
1897(define-public go-github-com-libp2p-go-libp2p-kad-dht
1898 (package
1899 (name "go-github-com-libp2p-go-libp2p-kad-dht")
1900 (version "0.40.0")
1901 (source
1902 (origin
1903 (method git-fetch)
1904 (uri (git-reference
1905 (url "https://github.com/libp2p/go-libp2p-kad-dht")
1906 (commit (string-append "v" version))))
1907 (file-name (git-file-name name version))
1908 (sha256
1909 (base32 "118sw150wdmrqvpqddjqa75ik9j3fza8m6dmhf1ai6pii3sgrg6n"))))
1910 (build-system go-build-system)
1911 (arguments
1912 (list
1913 #:embed-files #~(list "sorted-network-list.bin")
1914 #:import-path "github.com/libp2p/go-libp2p-kad-dht"
1915 ;; Error: "[]" should have 3 item(s), but has 0
1916 #:test-flags #~(list "-skip" "TestIPDiversityFilter/Different_IPv6_blocks")
1917 #:phases
1918 #~(modify-phases %standard-phases
1919 (add-before 'check 'pre-check
1920 (lambda* (#:key tests? import-path #:allow-other-keys)
1921 ;; See: <https://go.dev/blog/synctest>.
1922 (setenv "GODEBUG" "asynctimerchan=0"))))))
1923 (native-inputs
1924 (list go-github-com-ipfs-go-test
1925 go-github-com-ipfs-go-detect-race
1926 go-github-com-libp2p-go-libp2p
1927 go-github-com-multiformats-go-multistream
1928 go-github-com-ipfs-go-ds-pebble
1929 go-github-com-stretchr-testify))
1930 (propagated-inputs
1931 (list go-github-com-gammazero-deque
1932 go-github-com-google-gopacket
1933 go-github-com-google-uuid
1934 go-github-com-guillaumemichel-reservedpool
1935 go-github-com-hashicorp-golang-lru
1936 go-github-com-ipfs-boxo
1937 go-github-com-ipfs-go-cid
1938 go-github-com-ipfs-go-datastore
1939 go-github-com-ipfs-go-dsqueue
1940 go-github-com-ipfs-go-libdht
1941 go-github-com-ipfs-go-log-v2
1942 go-github-com-libp2p-go-libp2p-kbucket
1943 go-github-com-libp2p-go-libp2p-record
1944 go-github-com-libp2p-go-libp2p-routing-helpers
1945 go-github-com-libp2p-go-libp2p-testing
1946 go-github-com-libp2p-go-libp2p-xor
1947 go-github-com-libp2p-go-msgio
1948 go-github-com-libp2p-go-netroute
1949 go-github-com-multiformats-go-base32
1950 go-github-com-multiformats-go-multiaddr
1951 go-github-com-multiformats-go-multibase
1952 go-github-com-multiformats-go-multihash
1953 go-github-com-whyrusleeping-go-keyspace
1954 go-go-opentelemetry-io-otel
1955 go-go-opentelemetry-io-otel-metric
1956 go-go-opentelemetry-io-otel-trace
1957 go-go-uber-org-zap
1958 go-gonum-org-v1-gonum
1959 go-google-golang-org-protobuf))
1960 (home-page "https://github.com/libp2p/go-libp2p-kad-dht")
1961 (synopsis "Kademlia DHT implementation on go-libp2p")
1962 (description
1963 "Package dht implements a distributed hash table that satisfies the IPFS
1964routing interface as specified in @url{https://github.com/libp2p/specs,
1965kab-dht}. This DHT is modeled after Kademlia with S/Kademlia modifications.")
1966 (license license:expat)))
1967
1968(define-public go-github-com-libp2p-go-libp2p-kad-dht-bootstrap
1969 (hidden-package
1970 (package/inherit go-github-com-libp2p-go-libp2p-kad-dht
1971 (arguments
1972 (list
1973 #:skip-build? #t
1974 #:tests? #f
1975 #:import-path "github.com/libp2p/go-libp2p-kad-dht"))
1976 (propagated-inputs
1977 (list go-github-com-libp2p-go-libp2p-kbucket
1978 go-github-com-hashicorp-golang-lru
1979 go-github-com-whyrusleeping-go-keyspace
1980 go-gonum-org-v1-gonum)))))
1981
1982(define-public go-github-com-libp2p-go-libp2p-kbucket
1983 (package
1984 (name "go-github-com-libp2p-go-libp2p-kbucket")
1985 (version "0.8.0")
1986 (source
1987 (origin
1988 (method git-fetch)
1989 (uri (git-reference
1990 (url "https://github.com/libp2p/go-libp2p-kbucket")
1991 (commit (string-append "v" version))))
1992 (file-name (git-file-name name version))
1993 (sha256
1994 (base32 "0imhamd18v5q4c7r92janx8pc51gbcdbxgbq3cl0n0j27ddc7f19"))))
1995 (build-system go-build-system)
1996 (arguments
1997 (list
1998 #:skip-build? #t ; cycles with Boxo
1999 #:import-path "github.com/libp2p/go-libp2p-kbucket"
2000 ;; src/github.com/libp2p/go-libp2p-asn-util/asn.go:12:12: pattern
2001 ;; sorted-network-list.bin: cannot embed irregular file
2002 ;; sorted-network-list.bin
2003 #:embed-files #~(list "sorted-network-list\\.bin")
2004 ;; Run portion of tests to bypath cycle with Boxo.
2005 #:test-subdirs #~(list "peerdiversity/...")))
2006 (native-inputs
2007 (list go-github-com-stretchr-testify))
2008 (propagated-inputs
2009 (list go-github-com-ipfs-go-log-v2
2010 go-github-com-libp2p-go-cidranger
2011 go-github-com-libp2p-go-libp2p
2012 go-github-com-libp2p-go-libp2p-asn-util
2013 go-github-com-minio-sha256-simd
2014 go-github-com-multiformats-go-multiaddr
2015 go-github-com-multiformats-go-multihash))
2016 (home-page "https://github.com/libp2p/go-libp2p-kbucket")
2017 (synopsis "Kbucket implementation for use as a routing table")
2018 (description
2019 "Package kbucket implements a kademlia k-bucket routing table.")
2020 (license license:expat)))
2021
2022(define-public go-github-com-libp2p-go-libp2p-pubsub
2023 (package
2024 (name "go-github-com-libp2p-go-libp2p-pubsub")
2025 (version "0.16.0")
2026 (source
2027 (origin
2028 (method git-fetch)
2029 (uri (git-reference
2030 (url "https://github.com/libp2p/go-libp2p-pubsub")
2031 (commit (string-append "v" version))))
2032 (file-name (git-file-name name version))
2033 (sha256
2034 (base32 "03nh7lbzy51yyfgi6lqlyxz91il05axvis0nq3zfi8c98dadzr5j"))))
2035 (build-system go-build-system)
2036 (arguments
2037 (list
2038 #:import-path "github.com/libp2p/go-libp2p-pubsub"
2039 #:test-flags
2040 #~(list "-short"
2041 "-skip" (string-join
2042 ;; Expencive tests, which takes more than 10s to pass
2043 ;; and accumulate hard timeout; succeeded after 235.9
2044 ;; seconds with 16 threads.
2045 (list "TestBasicSeqnoValidatorReplay"
2046 "TestLastSeenCacheNotFoundAfterExpire"
2047 "TestConfigurableMaxMessageSize"
2048 "TestFloodSubPluggableProtocol/won"
2049 "TestGossipsubAttackSpamIHAVE"
2050 "TestGossipsubFanoutMaintenance"
2051 "TestGossipsubGossip"
2052 "TestGossipsubOpportunisticGrafting"
2053 "TestGossipsubRPCFragmentation"
2054 "TestGossipsubStarTopology"
2055 "TestGossipsubStarTopologyWithSignedPeerRecords"
2056 "TestPairwiseInteractionWithPartialMessages"
2057 "TestPeerDisconnect")
2058 "|"))
2059 ;; src/github.com/libp2p/go-libp2p-asn-util/asn.go:12:12: pattern
2060 ;; sorted-network-list.bin: cannot embed irregular file
2061 ;; sorted-network-list.bin
2062 #:embed-files #~(list "sorted-network-list\\.bin")))
2063 (native-inputs
2064 (list go-github-com-libp2p-go-libp2p-testing))
2065 (propagated-inputs
2066 (list go-github-com-benbjohnson-clock
2067 go-github-com-gogo-protobuf
2068 go-github-com-libp2p-go-buffer-pool
2069 go-github-com-libp2p-go-libp2p
2070 go-github-com-libp2p-go-msgio
2071 go-github-com-multiformats-go-multiaddr
2072 go-github-com-multiformats-go-varint))
2073 (home-page "https://github.com/libp2p/go-libp2p-pubsub")
2074 (synopsis "PubSub implementation for go-libp2p")
2075 (description
2076 "This package provides facilities for the Publish/Subscribe pattern of
2077message propagation, also known as overlay multicast. The implementation
2078provides topic-based pubsub, with pluggable routing algorithms.")
2079 (license (list license:asl2.0 license:expat))))
2080
2081(define-public go-github-com-libp2p-go-libp2p-pubsub-router
2082 (package
2083 (name "go-github-com-libp2p-go-libp2p-pubsub-router")
2084 (version "0.6.0")
2085 (source
2086 (origin
2087 (method git-fetch)
2088 (uri (git-reference
2089 (url "https://github.com/libp2p/go-libp2p-pubsub-router")
2090 (commit (string-append "v" version))))
2091 (file-name (git-file-name name version))
2092 (sha256
2093 (base32 "01mxb8gi7myidnyfg8yqb445lbwqmgncvh7rcwx6n8av84afplx4"))))
2094 (build-system go-build-system)
2095 (arguments
2096 (list
2097 #:tests? #f ; XXX: tests hang, check why
2098 #:import-path "github.com/libp2p/go-libp2p-pubsub-router"))
2099 (native-inputs
2100 (list go-github-com-stretchr-testify))
2101 (propagated-inputs
2102 (list go-github-com-gogo-protobuf
2103 go-github-com-ipfs-go-datastore
2104 go-github-com-ipfs-go-ipfs-ds-help
2105 go-github-com-ipfs-go-log-v2
2106 go-github-com-libp2p-go-libp2p
2107 go-github-com-libp2p-go-libp2p-pubsub
2108 go-github-com-libp2p-go-libp2p-record
2109 go-github-com-libp2p-go-msgio
2110 go-golang-org-x-sync))
2111 (home-page "https://github.com/libp2p/go-libp2p-pubsub-router")
2112 (synopsis "PubSub libp2p router library")
2113 (description
2114 "This package implements a IPNS over PubSub for @code{libp2p}.")
2115 (license license:expat)))
2116
2117(define-public go-github-com-libp2p-go-libp2p-record
2118 (package
2119 (name "go-github-com-libp2p-go-libp2p-record")
2120 (version "0.3.1")
2121 (source
2122 (origin
2123 (method git-fetch)
2124 (uri (git-reference
2125 (url "https://github.com/libp2p/go-libp2p-record")
2126 (commit (string-append "v" version))))
2127 (file-name (git-file-name name version))
2128 (sha256
2129 (base32 "0hl3khlsxagypf18cgx0rd2hnlnpg2vhcrn4g7m1xrkimgj57696"))))
2130 (build-system go-build-system)
2131 (arguments
2132 (list
2133 #:import-path "github.com/libp2p/go-libp2p-record"))
2134 (native-inputs
2135 (list go-github-com-ipfs-go-test
2136 go-google-golang-org-protobuf))
2137 (propagated-inputs
2138 (list go-github-com-libp2p-go-libp2p
2139 go-github-com-multiformats-go-multihash))
2140 (home-page "https://github.com/libp2p/go-libp2p-record")
2141 (synopsis "Signed records for use with routing systems")
2142 (description
2143 "This package implements signed records for use wit IPFS routing
2144systems.")
2145 (license license:expat)))
2146
2147(define-public go-github-com-libp2p-go-libp2p-routing-helpers
2148 (package
2149 (name "go-github-com-libp2p-go-libp2p-routing-helpers")
2150 (version "0.7.4")
2151 (source
2152 (origin
2153 (method git-fetch)
2154 (uri (git-reference
2155 (url "https://github.com/libp2p/go-libp2p-routing-helpers")
2156 (commit (string-append "v" version))))
2157 (file-name (git-file-name name version))
2158 (sha256
2159 (base32 "0s0gzxfhmvywk4w78j1ga1ha7f948csfyflpxz8la1cp64238f01"))))
2160 (build-system go-build-system)
2161 (arguments
2162 (list
2163 #:import-path "github.com/libp2p/go-libp2p-routing-helpers"))
2164 (native-inputs
2165 (list go-github-com-stretchr-testify))
2166 (propagated-inputs
2167 (list go-github-com-hashicorp-errwrap
2168 go-github-com-hashicorp-go-multierror
2169 go-github-com-ipfs-go-cid
2170 go-github-com-ipfs-go-log
2171 go-github-com-jorropo-jsync
2172 go-github-com-libp2p-go-libp2p
2173 go-github-com-libp2p-go-libp2p-record
2174 go-github-com-multiformats-go-multibase
2175 go-github-com-multiformats-go-multihash
2176 go-go-opentelemetry-io-otel
2177 go-go-opentelemetry-io-otel-trace
2178 go-go-uber-org-multierr))
2179 (home-page "https://github.com/libp2p/go-libp2p-routing-helpers")
2180 (synopsis
2181 "Collection of helper types for composing different types of routers")
2182 ;; XXX: Project lacks any documentation.
2183 (description
2184 "This package provides a collection of helper types for composing
2185different types of routers.")
2186 (license license:expat)))
2187
2188(define-public go-github-com-libp2p-go-libp2p-testing
2189 (package
2190 (name "go-github-com-libp2p-go-libp2p-testing")
2191 (version "0.12.0")
2192 (source
2193 (origin
2194 (method git-fetch)
2195 (uri (git-reference
2196 (url "https://github.com/libp2p/go-libp2p-testing")
2197 (commit (string-append "v" version))))
2198 (file-name (git-file-name name version))
2199 (sha256
2200 (base32 "08n17mqskdj5il6lws53wk1zsf9d8c55f58bap1rjngf2d669p39"))))
2201 (build-system go-build-system)
2202 (arguments
2203 (list
2204 #:skip-build? #t ; to break cycle with go-github-com-libp2p-go-libp2p
2205 #:tests? #f
2206 #:import-path "github.com/libp2p/go-libp2p-testing"))
2207 (home-page "https://github.com/libp2p/go-libp2p-testing")
2208 (synopsis "Test toolbox for go-libp2p modules")
2209 (description
2210 "This package provides a testing toolbox for go-libp2p modules.")
2211 (license (list license:expat license:asl2.0))))
2212
2213(define-public go-github-com-libp2p-go-libp2p-xor
2214 (package
2215 (name "go-github-com-libp2p-go-libp2p-xor")
2216 (version "0.1.0")
2217 (source
2218 (origin
2219 (method git-fetch)
2220 (uri (git-reference
2221 (url "https://github.com/libp2p/go-libp2p-xor")
2222 (commit (string-append "v" version))))
2223 (file-name (git-file-name name version))
2224 (sha256
2225 (base32 "0p4mwz0q0zbj8p1s04hmpy0w0znfxz3b7x28dv7cz0cg6wqvfqvk"))))
2226 (build-system go-build-system)
2227 (arguments
2228 (list
2229 ;; Do not build or test to bypass cycle with Boxo.
2230 #:skip-build? #t
2231 #:tests? #f
2232 #:import-path "github.com/libp2p/go-libp2p-xor"))
2233 (propagated-inputs
2234 (list go-github-com-libp2p-go-libp2p-kbucket))
2235 (home-page "https://github.com/libp2p/go-libp2p-xor")
2236 (synopsis "Xor Trie implementation for libp2p")
2237 (description
2238 "This package implements XOR tries. An XOR trie is a trie for
2239equal-length bit strings. XOR tries support efficient set operations, as well
2240as distance-based operations with respect to the XOR metric.")
2241 (license license:expat)))
2242
2243(define-public go-github-com-libp2p-go-socket-activation
2244 (package
2245 (name "go-github-com-libp2p-go-socket-activation")
2246 (version "0.1.0")
2247 (source
2248 (origin
2249 (method git-fetch)
2250 (uri (git-reference
2251 (url "https://github.com/libp2p/go-socket-activation")
2252 (commit (string-append "v" version))))
2253 (file-name (git-file-name name version))
2254 (sha256
2255 (base32 "1cqxzmjfg7838xifs07kigys9icardwlj1wl426mzgzmbwn6pg5s"))))
2256 (build-system go-build-system)
2257 (arguments
2258 (list
2259 #:import-path "github.com/libp2p/go-socket-activation"))
2260 (propagated-inputs
2261 (list go-github-com-coreos-go-systemd-v22
2262 go-github-com-ipfs-go-log
2263 go-github-com-multiformats-go-multiaddr))
2264 (home-page "https://github.com/libp2p/go-socket-activation")
2265 (synopsis "Multiaddr backed systemd socket activation")
2266 (description
2267 "This package provides access to sockets registered by the system's init
2268daemon as described in
2269@url{http://0pointer.de/blog/projects/socket-activation}.")
2270 (license license:expat)))
2271
2272(define-public go-github-com-probe-lab-go-libdht
2273 (package
2274 (name "go-github-com-probe-lab-go-libdht")
2275 (version "0.5.0")
2276 (source
2277 (origin
2278 (method git-fetch)
2279 (uri (git-reference
2280 ;; <https://github.com/probe-lab/go-libdht> redirects to
2281 ;; <https://github.com/ipfs/go-libdht>.
2282 (url "https://github.com/ipfs/go-libdht")
2283 (commit (string-append "v" version))))
2284 (file-name (git-file-name name version))
2285 (sha256
2286 (base32 "139zzvs9c65k6agfpy412y9bb4pfxdmwvwjbvndx9gd615qhxzak"))))
2287 (build-system go-build-system)
2288 (arguments
2289 (list
2290 #:skip-build? #t
2291 #:import-path "github.com/ipfs/go-libdht"))
2292 (native-inputs
2293 (list go-github-com-stretchr-testify))
2294 (home-page "https://github.com/ipfs/go-libdht")
2295 (synopsis "Generic Go DHT toolbox")
2296 (description
2297 "@code{go-libdht} is a generic toolbox designed for the implementation
2298and experimentation of Distributed Hash Tables (DHT) in Go. It establishes
2299foundational types and interfaces applicable across a broad spectrum of DHTs,
2300especially those sharing a similar topology. By offering reusable components
2301like keys and routing tables, @code{go-libdht} streamlines the DHT
2302implementation process. Using @code{go-libdht}, developers can seamlessly
2303craft their own DHTs using the provided modular components.")
2304 ;; SPDX-License-Identifier: Apache-2.0 OR MIT
2305 (license (list license:expat license:asl2.0))))
2306
2307(define-public go-github-com-whyrusleeping-cbor-gen
2308 (package
2309 (name "go-github-com-whyrusleeping-cbor-gen")
2310 (version "v0.0.0-20230818171029-f91ae536ca25")
2311 (source
2312 (origin
2313 (method git-fetch)
2314 (uri (git-reference
2315 (url "https://github.com/whyrusleeping/cbor-gen")
2316 (commit (go-version->git-ref version))))
2317 (file-name (git-file-name name version))
2318 (sha256
2319 (base32 "08by7pqh4fcwf2va01iif75yqkfssi6d48334404mmv9jmhzim60"))))
2320 (build-system go-build-system)
2321 (arguments
2322 (list
2323 #:import-path "github.com/whyrusleeping/cbor-gen"))
2324 (propagated-inputs
2325 (list go-github-com-ipfs-go-cid
2326 go-github-com-google-go-cmp
2327 go-golang-org-x-xerrors))
2328 (home-page "https://github.com/whyrusleeping/cbor-gen")
2329 (synopsis "Codegen for CBOR codecs on the specified types")
2330 (description
2331 "Basic utilities to generate fast path @url{https://cbor.io/, CBOR} codecs for
2332types.")
2333 (license license:expat)))
2334
2335(define-public kubo
2336 (package
2337 (name "kubo")
2338 (version "0.42.0")
2339 (source
2340 (origin
2341 (method git-fetch)
2342 (uri (git-reference
2343 (url "https://github.com/ipfs/kubo")
2344 (commit (string-append "v" version))))
2345 (file-name (git-file-name name version))
2346 (sha256
2347 (base32 "1gq2r9x2846gb39jnz4qcci04gmjvj5y1p7dw2nzy2zmjx8mnm0c"))
2348 (modules '((guix build utils)))
2349 (snippet
2350 #~(begin
2351 ;; Module name has been changed upstream.
2352 (substitute* (find-files "." "\\.go$")
2353 (("github.com/probe-lab/go-libdht")
2354 "github.com/ipfs/go-libdht"))))))
2355 (build-system go-build-system)
2356 (arguments
2357 (list
2358 #:go go-1.26
2359 #:modules '((guix build go-build-system)
2360 (guix build utils)
2361 (ice-9 match))
2362 #:install-source? #f
2363 #:embed-files #~(list "sorted-network-list.bin" ".*\\.css" ".*\\.html")
2364 #:unpack-path "github.com/ipfs/kubo"
2365 #:import-path "github.com/ipfs/kubo/cmd/ipfs"
2366 #:build-flags #~(list "-tags" "external_libzstd")
2367 #:test-flags #~(list "-tags" "external_libzstd")
2368 #:phases
2369 #~(modify-phases %standard-phases
2370 ;; https://github.com/ipfs/kubo/blob/master/docs/command-completion.md
2371 (add-after 'install 'install-completions
2372 (lambda* (#:key native-inputs #:allow-other-keys)
2373 (for-each
2374 (match-lambda
2375 ((shell . path)
2376 (mkdir-p (in-vicinity #$output (dirname path)))
2377 (let ((binary
2378 (if #$(%current-target-system)
2379 (search-input-file native-inputs "bin/ipfs")
2380 (in-vicinity #$output "bin/ipfs"))))
2381 (with-output-to-file (in-vicinity #$output path)
2382 (lambda _
2383 (invoke binary "commands" "completion" shell))))))
2384 '(("bash" . "etc/bash_completion.d/ipfs")
2385 ("fish" . "share/fish/vendor_completions.d/ipfs.fish")
2386 ("zsh" . "share/zsh/site-functions/_ipfs"))))))))
2387 (native-inputs
2388 (append
2389 (if (%current-target-system)
2390 (list this-package)
2391 '())
2392 (list go-contrib-go-opencensus-io-exporter-prometheus
2393 go-github-com-anmitsu-go-shlex
2394 go-github-com-blang-semver-v4
2395 go-github-com-caddyserver-certmagic
2396 go-github-com-cenkalti-backoff-v4
2397 go-github-com-ceramicnetwork-go-dag-jose
2398 go-github-com-cheggaaa-pb-v3
2399 go-github-com-cockroachdb-pebble-v2
2400 go-github-com-coreos-go-systemd-v22
2401 go-github-com-dustin-go-humanize
2402 go-github-com-elgris-jsondiff
2403 go-github-com-facebookgo-atomicfile
2404 go-github-com-fsnotify-fsnotify
2405 go-github-com-google-uuid
2406 go-github-com-hanwen-go-fuse-v2
2407 go-github-com-hashicorp-go-version
2408 go-github-com-ipfs-shipyard-nopfs
2409 go-github-com-ipfs-shipyard-nopfs-ipfs
2410 go-github-com-ipfs-boxo
2411 go-github-com-ipfs-go-block-format
2412 go-github-com-ipfs-go-cid
2413 go-github-com-ipfs-go-cidutil
2414 go-github-com-ipfs-go-datastore
2415 go-github-com-ipfs-go-detect-race
2416 go-github-com-ipfs-go-ds-badger
2417 go-github-com-ipfs-go-ds-flatfs
2418 go-github-com-ipfs-go-ds-leveldb
2419 go-github-com-ipfs-go-ds-measure
2420 go-github-com-ipfs-go-ds-pebble
2421 go-github-com-ipfs-go-fs-lock
2422 go-github-com-ipfs-go-ipfs-cmds
2423 go-github-com-ipfs-go-ipld-cbor
2424 go-github-com-ipfs-go-ipld-format
2425 go-github-com-ipfs-go-ipld-git
2426 go-github-com-ipfs-go-ipld-legacy
2427 go-github-com-ipfs-go-log-v2
2428 go-github-com-ipfs-go-metrics-interface
2429 go-github-com-ipfs-go-metrics-prometheus
2430 go-github-com-ipfs-go-test
2431 go-github-com-ipfs-go-unixfsnode
2432 go-github-com-ipld-go-car-v2
2433 go-github-com-ipld-go-codec-dagpb
2434 go-github-com-ipld-go-ipld-prime
2435 go-github-com-ipshipyard-p2p-forge
2436 go-github-com-jbenet-go-temp-err-catcher
2437 go-github-com-julienschmidt-httprouter
2438 go-github-com-libp2p-go-doh-resolver
2439 go-github-com-libp2p-go-libp2p
2440 go-github-com-libp2p-go-libp2p-http
2441 go-github-com-libp2p-go-libp2p-kad-dht
2442 go-github-com-libp2p-go-libp2p-kbucket
2443 go-github-com-libp2p-go-libp2p-pubsub
2444 go-github-com-libp2p-go-libp2p-pubsub-router
2445 go-github-com-libp2p-go-libp2p-record
2446 go-github-com-libp2p-go-libp2p-routing-helpers
2447 go-github-com-libp2p-go-libp2p-testing
2448 go-github-com-libp2p-go-socket-activation
2449 go-github-com-mattn-go-isatty
2450 go-github-com-miekg-dns
2451 go-github-com-multiformats-go-multiaddr
2452 go-github-com-multiformats-go-multiaddr-dns
2453 go-github-com-multiformats-go-multibase
2454 go-github-com-multiformats-go-multicodec
2455 go-github-com-multiformats-go-multihash
2456 go-github-com-opentracing-opentracing-go
2457 go-github-com-pbnjay-memory
2458 go-github-com-probe-lab-go-libdht
2459 go-github-com-prometheus-client-golang
2460 go-github-com-stretchr-testify
2461 go-github-com-syndtr-goleveldb
2462 go-github-com-tidwall-gjson
2463 go-github-com-tidwall-sjson
2464 go-github-com-whyrusleeping-go-sysinfo
2465 go-github-com-whyrusleeping-multiaddr-filter
2466 go-go-opencensus-io
2467 go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp
2468 go-go-opentelemetry-io-contrib-propagators-autoprop
2469 go-go-opentelemetry-io-otel
2470 go-go-opentelemetry-io-otel-exporters-prometheus
2471 go-go-opentelemetry-io-otel-sdk
2472 go-go-opentelemetry-io-otel-sdk-metric
2473 go-go-opentelemetry-io-otel-trace
2474 go-go-uber-org-dig
2475 go-go-uber-org-fx
2476 go-go-uber-org-zap
2477 go-golang-org-x-crypto
2478 go-golang-org-x-exp
2479 go-golang-org-x-mod
2480 go-golang-org-x-sync
2481 go-golang-org-x-sys
2482 go-golang-org-x-term
2483 go-google-golang-org-protobuf
2484 python-minimal-wrapper
2485 zsh)))
2486 (home-page "https://ipfs.tech")
2487 (synopsis "Go implementation of IPFS, a peer-to-peer hypermedia protocol")
2488 (description "IPFS is a global, versioned, peer-to-peer file system. It
2489combines good ideas from Git, BitTorrent, Kademlia, SFS, and the Web. It is
2490like a single bittorrent swarm, exchanging git objects. IPFS provides an
2491interface as simple as the HTTP web, but with permanence built in. You can
2492also mount the world at @code{/ipfs}.")
2493 (license license:expat)))
2494
2495(define-public spritely-libp2p-daemon
2496 (let ((version "0.1")
2497 (commit "f10d8c4bad2a50d6e481c0b57231741d079ffedb")
2498 (revision "0"))
2499 (package
2500 (name "spritely-libp2p-daemon")
2501 (version (git-version version revision commit))
2502 (source
2503 (origin
2504 (method git-fetch)
2505 (uri (git-reference
2506 (url "https://gitlab.com/spritely/go-libp2p-daemon.git")
2507 (commit commit)))
2508 (file-name (git-file-name name version))
2509 (sha256
2510 (base32 "0bk2610rlg8d4lla7h7sic9drv1syabfbr7kbg2yqqbhiwg0v2br"))))
2511 (build-system go-build-system)
2512 (arguments
2513 (list
2514 #:embed-files #~(list "sorted-network-list.bin")
2515 #:install-source? #f
2516 #:import-path "gitlab.com/spritely/spritely-libp2p-daemon"))
2517 (native-inputs
2518 (list go-github-com-libp2p-go-libp2p
2519 go-github-com-multiformats-go-multiaddr
2520 go-github-com-stretchr-testify))
2521 (home-page "https://gitlab.com/spritely/go-libp2p-daemon")
2522 (synopsis "Simple daemon to connect over libp2p")
2523 (description "This package provides a very simple daemon to interface to
2524from other programming languages. It's designed to fulfill the needs of
2525Spritely's Goblins library to support libp2p as a netlayer.")
2526 (license license:asl2.0))))