MCPcopy Index your code
hub / github.com/Azure/peerd

github.com/Azure/peerd @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
400 symbols 1,369 edges 73 files 209 documented · 52%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Peerd

Build Status Kind CI Status Release CI CodeQL Go Report Card codecov release-tag

peerd-logo


Peerd enhances Azure Artifact Streaming performance by enabling peer-to-peer distribution in a Kubernetes cluster. Nodes can share streamable content with each other, which can result in throughput and latency improvements.

Usage Guide

See the usage guide to get started.

Design and Architecture

Read the design.md document to understand the architecture and design of Peerd.

Contributing

Please read our contribution guide which outlines all of our policies, procedures, and requirements for contributing to this project.

Code of Conduct

Please see CODE_OF_CONDUCT.md for further details.

Acknowledgments

  • Thanks to Philip Laine and Simon Gottschlag at Xenit for generously sharing their insights on Spegel with us.
  • Thanks to DADI P2P Proxy for demonstrating the integration with Overlaybd.

Extension points exported contracts — how you extend this code

Reader (Interface)
Reader provides a read-only interface to a remote file. [3 implementers]
pkg/discovery/content/reader/interface.go
Cache (Interface)
Cache describes a cache of files. [1 implementers]
pkg/cache/interface.go
EventRecorder (Interface)
EventRecorder can be used to record various event. [1 implementers]
pkg/k8s/events/interface.go
FilesStore (Interface)
FilesStore describes a store for files. [1 implementers]
pkg/files/store/interface.go
Metrics (Interface)
Metrics defines an interface to collect p2p metrics. [1 implementers]
pkg/metrics/interface.go
Parser (Interface)
Parser describes an interface for parsing information from a URL. [1 implementers]
pkg/urlparser/parser.go
Network (Interface)
Network provides the transport and HTTP clients for communicating with peers. [1 implementers]
pkg/peernet/network.go
Router (Interface)
Router provides a content routing interface to the network. [2 implementers]
pkg/discovery/routing/interface.go

Core symbols most depended-on inside this repo

Set
called by 51
pkg/cache/syncmap.go
Get
called by 31
pkg/cache/syncmap.go
NewMockRouter
called by 29
pkg/discovery/routing/mocks/router.go
Close
called by 18
pkg/discovery/routing/interface.go
NewFilesStore
called by 11
pkg/files/store/store.go
Log
called by 10
pkg/discovery/content/reader/interface.go
Size
called by 9
pkg/cache/interface.go
newItem
called by 8
pkg/cache/item.go

Shape

Function 185
Method 165
Struct 38
Interface 10
TypeAlias 2

Languages

Go100%

Modules by API surface

pkg/peernet/mocks/peerstore.go29 symbols
pkg/discovery/routing/router_test.go21 symbols
pkg/peernet/mocks/host.go14 symbols
pkg/discovery/content/reader/reader.go12 symbols
pkg/peernet/network.go10 symbols
pkg/k8s/events/events.go10 symbols
pkg/discovery/routing/router.go10 symbols
pkg/k8s/events/events_test.go9 symbols
pkg/k8s/election/election.go9 symbols
pkg/files/store/interface.go9 symbols
pkg/context/context.go9 symbols
pkg/metrics/interface.go8 symbols

For agents

$ claude mcp add peerd \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact