MCPcopy Index your code
hub / github.com/agl/pond

github.com/agl/pond @v0.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.1 ↗ · + Follow
1,276 symbols 3,606 edges 64 files 155 documented · 12%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Pond

(Or, how to better organise a discreet relationship with the Director of the CIA.)

At this point, I welcome technical feedback on the design and comments from the sort of (often non-technical) folks who need this sort of thing about whether it actually meets their needs.

For details, see the main website.

The code here is broken down as follows:

  • bbssig contains an implementation of the BBS group signature scheme. This is used in Pond to allow servers to reject messages from non-contacts without the server being able to identify those contacts.
  • bn256cgo contains a wrapping of Naehrig, Niederhagen and Schwabe's pairing library. This is a drop in replacement for the bn256 package from go.crypto and speeds up bbssig. See https://github.com/agl/dclxvi.
  • client contains the Pond GUI and CLI client and package for manipulating state files.
  • doc contains the https://pond.imperialviolet.org site in Jeykll format.
  • editstate contains a debugging utility for manipulating state files.
  • panda contains a library for performing shared-key exchanges. It's used by client/ to implement that functionality.
  • protos contains the protocol buffer files for client to server communication.
  • server contains the Pond server.
  • transport contains code to implement the, low-level, client to server transport protocol.

Extension points exported contracts — how you extend this code

GUI (Interface)
GUI contains an abstraction layer that models GTK pretty closely. This is used to allow the GUI to run in a separate go [2 …
client/abstractgui.go
UI (Interface)
UI abstracts behaviour that is specific to a given interface (GUI or CLI). Generic code can call these functions to perf [2 …
client/client.go
ErasureStorage (Interface)
ErasureStorage represents a type of storage that can store, and erase, small amounts of data. [2 implementers]
client/disk/disk.go
DetachmentUI (Interface)
(no doc) [2 implementers]
client/gui.go
MeetingPlace (Interface)
(no doc) [2 implementers]
panda/panda.go
Widget (Interface)
Widgets Widget structures mirror the similar widgets in GTK+ and their members mirror GTK+ properties. The GTK+ documen [1 …
client/abstractgui.go

Core symbols most depended-on inside this repo

Actions
called by 184
client/abstractgui.go
Errorf
called by 134
client/log.go
Printf
called by 129
client/cli.go
Write
called by 115
client/disk/disk.go
Printf
called by 101
client/log.go
Signal
called by 98
client/abstractgui.go
Error
called by 69
client/tpm/tpm.go
ScalarMult
called by 51
bn256cgo/bn256.go

Shape

Method 801
Function 243
Struct 208
TypeAlias 16
Interface 8

Languages

Go100%

Modules by API surface

protos/pond.pb.go174 symbols
client/disk/client.pb.go154 symbols
client/client.go82 symbols
client/abstractgui.go73 symbols
client/gui.go72 symbols
client/client_test.go68 symbols
client/cli.go62 symbols
client/cli-input.go50 symbols
bn256cgo/bn256.go47 symbols
server/server.go45 symbols
panda/proto/core.pb.go37 symbols
client/network.go36 symbols

For agents

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

⬇ download graph artifact