Back to


Latest Go to latest

The highest tagged major version is .

Published: Jun 29, 2020 | License: BSD-3-Clause | Module:
Path Synopsis
v23 Package v23 defines the runtime interface of Vanadium, and its subdirectories define the entire Vanadium public API.
v23/context Package context implements a mechanism to carry data across API boundaries.
v23/conventions Package conventions implements unenforced conventions for Vanadium.
v23/discovery nolint:golint Package discovery defines types and interfaces for discovering services.
v23/flow nolint:golint Package flow defines interfaces for the management of authenticated bidirectional byte Flows.
v23/flow/message nolint:golint
v23/glob Package glob defines a globbing syntax and implements matching routines.
v23/i18n Package i18n implements internationalization of formatted message strings in different languages.
v23/logging Package loging defines an interface for logging modeled on Google's glog.
v23/namespace Package namespace defines an interface for resolving and managing names.
v23/naming Package naming defines types and utilities associated with naming.
v23/options Package options defines common options recognized by vanadium implementations.
v23/query The query packages implement Vanadium's query capabilities.
v23/query/engine Package engine defines a Create function which returns an instance of datasource.QueryEngine
v23/query/engine/datasource Package datasource defines the interfaces a system must implement to support querying.
v23/query/engine/internal Package internal implements Exec, executing SQL-like queries on a given database.
v23/query/engine/internal/querychecker Package querychecker performs a semantic check on an AST produced by the queryparser package.
v23/query/engine/internal/queryfunctions Package queryfunctions describes SyncQL's built-in functions.
v23/query/engine/internal/queryparser Package queryparser is a parser to parse a simplified select statement (a la SQL) for the Vanadium key value store (a.k.a., syncbase).
v23/query/engine/internal/test Package query_test contains tests for the query package.
v23/query/engine/public Package public defines the QueryEngine interface which is returned from calling and PreparedStatement which is returned from the QueryEngine.PrepareStatement function.
v23/query/pattern Package pattern handles parsing and matching SQL LIKE-style glob patterns.
v23/query/syncql The ResultStream interface is used to iterate over query results.
v23/rpc Package rpc defines interfaces for communication via remote procedure call.
v23/rpc/reserved Package reserved implements client-side support for reserved RPC methods implemented by all servers.
v23/rpc/version Package version defines a mechanism for versioning the RPC protocol.
v23/security Package security defines types and utilities associated with security.
v23/security/access Package access defines types and interfaces for dynamic access control.
v23/security/access/internal Package internal provides a VDL specification for a service used in the unittest of the access package.
v23/services/appcycle Package appcycle defines interfaces for managing application processes.
v23/services/groups Package groups defines interfaces for managing access control groups.
v23/services/http Package HTTP defines an interface to send a http.Request from a client to a Vanadium server.
v23/services/logreader Package logreader defines interfaces for reading log files remotely.
v23/services/mounttable Package mounttable defines interfaces for managing associations between names and servers.
v23/services/permissions Package permissions defines an interface for managing access control permissions.
v23/services/pprof Package pprof defines an interface for accessing runtime profiling data in the format expected by the pprof visualization tool.
v23/services/stats Package stats defines an interface to access statistical information for troubleshooting and monitoring purposes.
v23/services/tidyable Package tidyable defines an interface for services that can be requested to clean up transient resource use (such as logs or caches.) nolint:golint
v23/services/vtrace Package vtrace defines an interface to access traces, to help analyze and debug distributed systems.
v23/services/watch Package watch defines interfaces for watching a sequence of changes.
v23/uniqueid Package uniqueid defines functions that are likely to generate globally unique identifiers.
v23/vdl Package vdl implements the Vanadium Definition Language type and value system.
v23/vdl/vdltest Package vdltest provides a variety of VDL types and values for testing.
v23/vdl/vdltest/internal/vdltestgen Command vdltestgen generates types and values for the vdltest package.
v23/vdlroot Package vdlroot defines the standard VDL packages; the VDLROOT environment variable should point at this directory.
v23/vdlroot/math nolint:golint
v23/vdlroot/signature Package signature defines types representing interface and method signatures.
v23/vdlroot/time Package time defines standard representations of absolute and relative times.
v23/vdlroot/vdltool Package vdltool defines types used by the vdl tool itself, including the format of vdl.config files.
v23/verror Package verror implements an error reporting mechanism that works across programming environments, and a set of common errors.
v23/vom Package vom implements the Vanadium Object Marshaling serialization format.
v23/vom/internal nolint:golint
v23/vom/vomtest Package vomtest provides protocol conformance tests for the Vanadium Object Marshaller (VOM).
v23/vom/vomtest/internal/vomforever Command vomforever is a tool that searches for bugs in vom.
v23/vom/vomtest/internal/vomtestgen Command vomtestgen generates test cases for the vomtest package.
v23/vtrace Package vtrace defines a system for collecting debugging information about operations that span a distributed system.
x/ref Package ref defines constants used through the Vanadium reference implementation, which is implemented in its subdirectories.
x/ref/cmd/gclogs Command gclogs safely deletes old log files.
x/ref/cmd/mounttable Command mounttable sends commands to Vanadium mounttable services.
x/ref/cmd/namespace Command namespace resolves and manages names in the Vanadium namespace.
x/ref/cmd/principal Command principal creates and manages Vanadium principals and blessings.
x/ref/cmd/uniqueid Command uniqueid generates unique identifiers.
x/ref/cmd/vdl Command vdl manages Vanadium Definition Language source code.
x/ref/cmd/vom Command vom helps debug the Vanadium Object Marshaling wire protocol.
x/ref/cmd/vrpc Command vrpc sends and receives Vanadium remote procedure calls.
x/ref/cmd/vrpc/internal nolint:golint
x/ref/examples/echo nolint:golint
x/ref/examples/echo/echo Command echo is a client for the Echo service.
x/ref/examples/echo/echod Command echo is a server for the Echo service.
x/ref/examples/fortune Package fortune defines the Fortune example interface.
x/ref/examples/fortune/fortune Command fortune is a client to the Fortune interface.
x/ref/examples/fortune/fortuned Command fortuned runs a daemon that implements the Fortune interface.
x/ref/examples/noflags An example using the 'library' factory which is configured via exported variables rather than by command line flags.
x/ref/examples/rps Package rps defines interfaces for playing the game Rock-Paper-Scissors.
x/ref/examples/rps/internal Package internal defines common functions used by both rock paper scissors clients and servers.
x/ref/examples/rps/rpsbot Command rpsbot repeatedly runs automated games, implementing all three roles.
x/ref/examples/rps/rpsplayer Command rpsplayer implements the Player interface, which enables a human to play the game.
x/ref/examples/rps/rpsscorekeeper Command rpsscorekeeper implements the ScoreKeeper interface.
x/ref/examples/tunnel Package tunnel defines an interface for creating a network tunnel from client to server.
x/ref/examples/tunnel/internal Package internal defines common types and functions used by both tunnel clients and servers.
x/ref/examples/tunnel/tunneld Command tunneld runs the tunneld daemon, which implements the Tunnel interface.
x/ref/examples/tunnel/vsh Command vsh runs the Vanadium shell, a Tunnel client that can be used to run shell commands or start an interactive shell on a remote tunneld server.
x/ref/internal/logger Package logger provides access to an implementation of v23/logger.Logging for use within a runtime implementation.
x/ref/internal/reflectutil Package reflectutil provides reflection-based utilities.
x/ref/lib/apilog Package apilog provides functions to be used in conjunction with logcop.
x/ref/lib/discovery nolint:golint
x/ref/lib/discovery/global TODO(jhahn): This is an experimental work to see its feasibility and set the long-term goal, and can be changed without notice.
x/ref/lib/discovery/plugins/loopback Package loopback implements loopback plugin for discovery service.
x/ref/lib/discovery/plugins/mdns Package mdns implements mDNS plugin for discovery service.
x/ref/lib/discovery/plugins/vine Package vine contains a discovery plugin that is using Vine protocol.
x/ref/lib/discovery/test package test contains tests that rely on a fake runtime.
x/ref/lib/discovery/testutil Package testutil defines helpers for discovery tests.
x/ref/lib/exec Package exec implements configuration and secret-sharing between parent and child processes via anoymous pipes.
x/ref/lib/flags Package flags implements utilities to augment the standard Go flag package.
x/ref/lib/glob Package glob defines a globbing syntax and implements matching routines.
x/ref/lib/mgmt Package mgmt defines constants used by the management tools and daemons.
x/ref/lib/publisher Package publisher provides a type to publish names to a mounttable.
x/ref/lib/pubsub Package pubsub defines interfaces for accessing dynamically changing process configuration information.
x/ref/lib/raft nolint:golint
x/ref/lib/security Package security implements utilities for creating and using Vanadium security primitives.
x/ref/lib/security/audit Package audit implements a mechanism for writing auditable events to an audit log.
x/ref/lib/security/bcrypter nolint:golint Package bcrypter defines the mechanisms for blessings based encryption and decryption.
x/ref/lib/security/passphrase Package passphrase contains utilities for reading a passphrase.
x/ref/lib/security/securityflag Package securityflag implements utilities for creating security objects based on flags.
x/ref/lib/security/serialization Package serialization implements utilities for reading and writing data with signature-based integrity checking.
x/ref/lib/signals Package signals implements utilities for managing process shutdown with support for signal-handling.
x/ref/lib/stats Package stats implements a global repository of stats objects.
x/ref/lib/stats/counter Package counter implements counters that keeps track of their recent values over different periods of time.
x/ref/lib/stats/histogram Package histogram implements a basic histogram to keep track of data distribution.
x/ref/lib/stats/sysstats Package sysstats implements system statistics and updates them periodically.
x/ref/lib/timekeeper Package timekeeper defines an interface to allow switching between real time and simulated time.
x/ref/lib/v23cmd Package v23cmd implements utilities for running v23 cmdline programs.
x/ref/lib/vdl/build Package build implements utilities to collect VDL build information and run the parser and compiler.
x/ref/lib/vdl/codegen Package codegen implements utilities for VDL code generators.
x/ref/lib/vdl/codegen/golang Package golang implements Go code generation from compiled VDL packages.
x/ref/lib/vdl/codegen/java Package java implements Java code generation from compiled VDL packages.
x/ref/lib/vdl/codegen/javascript Package javascript implements Javascript code generation from compiled VDL packages.
x/ref/lib/vdl/codegen/json Package json implements JSON generation for VDL const values.
x/ref/lib/vdl/codegen/swift Package swift implements Swift code generation from compiled VDL packages.
x/ref/lib/vdl/codegen/vdlgen Package vdlgen implements VDL code generation from compiled VDL packages.
x/ref/lib/vdl/compile Package compile implements the VDL compiler, converting a parse tree into compiled results.
x/ref/lib/vdl/internal/vdltestutil Package vdltestutil provides testing utilities for
x/ref/lib/vdl/opconst Package opconst defines the representation and operations for VDL constants.
x/ref/lib/vdl/parse Package parse implements the VDL parser, converting source files into a parse tree.
x/ref/lib/vdl/vdlutil Package vdlutil implements utilities used by many VDL components.
x/ref/runtime Package runtime and its subdirectories provide implementations of the Vanadium runtime for different runtime environments.
x/ref/runtime/factories/fake Package fake implements a fake RuntimeFactory, useful in tests for mocking out certain components.
x/ref/runtime/factories/generic Package generic implements a RuntimeFactory that is useful in tests.
x/ref/runtime/factories/library Package library implements a RuntimeFactory suitable for building a Vanadium library that is linked into other applications.
x/ref/runtime/factories/library/internal/noflags An example using the 'library' factory which is configured via exported variables rather than by command line flags.
x/ref/runtime/factories/library/internal/notpreparsed An example using the 'library' factory which is configured via exported variables rather than by command line flags.
x/ref/runtime/factories/library/internal/preparsed An example using the 'library' factory which is configured via exported variables rather than by command line flags.
x/ref/runtime/factories/library/internal/withflags An example using the 'library' factory which is configured via exported variables rather than by command line flags.
x/ref/runtime/factories/roaming Package roaming implements a RuntimeFactory suitable for a variety of network configurations, including 1-1 NATs, dhcp auto-configuration, Amazon Web Services and Google Compute Engine.
x/ref/runtime/factories/static Package static implements a RuntimeFactory suitable for a variety of network configurations, including 1-1 NATs, Amazon Web Services and Google Compute Engine but hosted on a static IP address with no support for adapting to dhcp changes.
x/ref/runtime/internal/cloudvm Package cloudvm provides functions to test whether the current process is running on Google Compute Engine or Amazon Web Services, and to extract settings from this environment.
x/ref/runtime/internal/flow/conn nolint:golint
x/ref/runtime/internal/flow/manager nolint:golint
x/ref/runtime/internal/lib/bqueue Package bqueue implements several kinds of buffer queues, as a N-writer, 1-reader queue.
x/ref/runtime/internal/lib/bqueue/drrqueue Package drrqueue implements a deficit round-robin buffer queue.
x/ref/runtime/internal/lib/dependency Package dependency keeps track of a dependency graph.
x/ref/runtime/internal/lib/deque Package deque implements a deque using a circular array.
x/ref/runtime/internal/lib/iobuf Package iobuf performs explicit memory management for data buffers used to perform network IO.
x/ref/runtime/internal/lib/pcqueue A producer/consumer queue is a concurrent bounded buffer supporting multiple concurrent producers and consumers, with timeouts.
x/ref/runtime/internal/lib/sync Package sync provides synchronization primitives.
x/ref/runtime/internal/lib/upcqueue Package upcqueue implements an unbounded producer/consumer queue.
x/ref/runtime/internal/naming Package naming provides an implementation of the interfaces in
x/ref/runtime/internal/rpc nolint:golint
x/ref/runtime/internal/rpc/benchmark package benchmark provides simple tools to measure the performance of the IPC system.
x/ref/runtime/internal/rpc/benchmark/benchmark Command benchmark runs the benchmark client.
x/ref/runtime/internal/rpc/benchmark/benchmarkd Command benchmarkd runs the benchmark server.
x/ref/runtime/internal/rpc/stress nolint:golint
x/ref/runtime/internal/rpc/stress/mtstress Usage: mtstress [flags] <command> The mtstress commands are: mount Measure latency of the Mount RPC at a fixed request rate resolve Measure latency of the Resolve RPC at a fixed request rate help Display help for commands or topics The global flags are: -duration=10s Duration for sending test traffic and measuring latency -rate=1 Rate, in RPCs per second, to send to the test server -reauthenticate=false If true, establish a new authenticated connection for each RPC, simulating load from a distinct process -alsologtostderr=true log to standard error as well as files -log_backtrace_at=:0 when logging hits line file:N, emit a stack trace -log_dir= if non-empty, write log files to this directory -logtostderr=false log to standard error instead of files -max_stack_buf_size=4292608 max size in bytes of the buffer to use for logging stack traces -metadata=<just specify -metadata to activate> Displays metadata for the program and exits.
x/ref/runtime/internal/rpc/stress/stress Command stress is a tool to stress/load test RPC by issuing randomly generated requests.
x/ref/runtime/internal/rpc/stress/stressd Command stressd runs the stress-test server.
x/ref/runtime/internal/rpc/test package test contains test for rpc code that do not rely on unexposed rpc declarations.
x/ref/runtime/internal/testing/concurrency Package concurrency implements a framework for systematic testing of concurrent vanadium Go programs.
x/ref/runtime/internal/vtrace Package vtrace implements the Trace and Span interfaces in
x/ref/runtime/protocols/bidi nolint:golint
x/ref/runtime/protocols/lib/framer nolint:golint
x/ref/runtime/protocols/lib/tcputil package tcputil contains functions commonly used to manipulate TCP connections.
x/ref/runtime/protocols/lib/websocket nolint:golint
x/ref/runtime/protocols/vine Package vine contains Vanadium's Implementation of Network Emulation (VINE).
x/ref/runtime/protocols/wsh Package wsh registers the websocket 'hybrid' protocol.
x/ref/runtime/protocols/wsh_nacl Package wsh_nacl registers the websocket 'hybrid' protocol for nacl architectures.
x/ref/services/agent Package agent defines an interface to keep a private key in memory, and for clients to have access to the private key.
x/ref/services/agent/agentlib Package agentlib provides ways to create Principals that are backed by the security agent.
x/ref/services/agent/gcreds Command gcreds runs a command with Google Cloud Blessings.
x/ref/services/agent/internal/constants Package constants holds constants shared by client and server.
x/ref/services/agent/internal/ipc Package ipc implements a simple IPC system based on VOM.
x/ref/services/agent/internal/launcher Package launcher contains utilities to launch v23agentd.
x/ref/services/agent/internal/lock Package lock provides a lock object to synchronize access to a directory among multiple processes.
x/ref/services/agent/internal/lockfile Package lockfile provides methods to associate process ids (PIDs) with a file.
x/ref/services/agent/internal/lockutil Package lockutil contains utilities for building file locks.
x/ref/services/agent/internal/lru Package lru implements a Least-Recently-Used (LRU) cache of objects keyed by a string.
x/ref/services/agent/internal/pingpong Command pingpong runs a pingpong client or server.
x/ref/services/agent/internal/test_principal Command test_principal runs tests against a principal.
x/ref/services/agent/internal/version Package version provides versioning for the agent.
x/ref/services/agent/server Package server contains utilities for serving a principal using a socket-based IPC system.
x/ref/services/agent/v23agentd Command v23agentd manages the security agent daemon, which holds the private key, blessings and recognized roots of a principal in memory and makes the principal available to other processes.
x/ref/services/agent/vbecome Command vbecome executes commands with a derived Vanadium principal.
x/ref/services/ben Package ben defines datastructures to archive microbenchmark results.
x/ref/services/ben/archive Package archive defines the RPC interface for archiving benchmark results.
x/ref/services/ben/benarchd Command benarchd implements a benchmark archival daemon.
x/ref/services/ben/benarchd/internal go:generate ./
x/ref/services/debug/debug Command debug supports debugging Vanadium servers.
x/ref/services/debug/debug/browseserver Package browseserver provides a web interface that can be used to interact with the vanadium debug interface.
x/ref/services/debug/debuglib Package debuglib implements debug server support.
x/ref/services/discharger Package discharger defines an interface for obtaining discharges for third-party caveats.
x/ref/services/groups/groups Command groups creates and manages Vanadium groups of blessing patterns.
x/ref/services/groups/groupsd Daemon groupsd implements the interfaces for managing access control groups.
x/ref/services/groups/internal/server Package server provides an implementation of the groups.Group RPC interface.
x/ref/services/groups/internal/store nolint:golint
x/ref/services/groups/internal/store/mem Package mem provides a simple, in-memory implementation of server.Store.
x/ref/services/identity Package identity defines interfaces for Vanadium identity providers.
x/ref/services/identity/identityd Command identityd runs a daemon HTTP server that uses OAuth to create security.Blessings objects.
x/ref/services/identity/identitylib Package identitylib implements a test identityd service registered using the library.
x/ref/services/identity/internal/identityd_test Command identityd_test runs a daemon HTTP server that uses OAuth to create security.Blessings objects.
x/ref/services/identity/internal/oauth Package oauth implements an http.Handler that has two main purposes listed below: (1) Uses OAuth to authenticate and then renders a page that displays all the blessings that were provided for that Google user.
x/ref/services/identity/internal/revocation nolint:golint Package revocation provides tools to create and manage revocation caveats.
x/ref/services/identity/internal/server HTTP server that uses OAuth to create security.Blessings objects.
x/ref/services/identity/internal/util Package util implements miscellaneous utility functions needed by the identity HTTP server.
x/ref/services/internal/dbutil Package dbutil implements utilities for opening and configuring connections to MySQL-like databases, with optional TLS support.
x/ref/services/internal/dirprinter Package dirprinter contains utilities for dumping the contents and structure of a directory tree.
x/ref/services/internal/logreaderlib Package logreaderlib implements the LogFile interface from, which can be used to allow remote access to log files, and the ChildrenGlobber interface from to find the files in a logs directory.
x/ref/services/internal/multipart Package multipart implements an http.File that acts as one logical file backed by several physical files (the 'parts').
x/ref/services/internal/pathperms Package pathperms provides a library to assist servers implementing GetPermissions/SetPermissions functions and authorizers where there are path-specific Permissions stored individually in files.
x/ref/services/internal/pproflib Package pproflib defines a client-side proxy and server-side implementation of the interface.
x/ref/services/internal/restsigner/signer/v1 Package signer provides access to the .
x/ref/services/internal/servicetest Package servicetest provides functionality to help write tests for the Vanadium services.
x/ref/services/internal/statslib Package statslib implements the Stats interface from
x/ref/services/mounttable/mounttabled Command mounttabled runs the mount table daemon, which implements the interfaces.
x/ref/services/mounttable/mounttablelib Package mounttablelib implements utilities for mounttable implementations.
x/ref/services/role Package role defines an interface for requesting blessings from a role account server.
x/ref/services/role/roled Command roled runs the Role interface daemon.
x/ref/services/role/roled/internal Package internal implements the role service defined in nolint:golint
x/ref/services/stats Packages stats defines the non-native types exported by the stats service.
x/ref/services/xproxy Package xproxy enables services to export (proxy) themselves across networks (behind NATs for example).
x/ref/services/xproxy/xproxy Package xproxy contains the implementation of the proxy service.
x/ref/services/xproxy/xproxyd Command proxyd is a daemon that listens for connections from Vanadium services (typically behind NATs) and proxies these services to the outside world.
x/ref/test Package test implements initialization for unit and integration tests.
x/ref/test/basics Package basics implements some benchmarks for important basic operations in go.
x/ref/test/benchmark Package benchmark implements utilities to augment the standard Go testing.Benchmark functionality.
x/ref/test/expect Package expect implements support for checking expectations against a buffered input stream.
x/ref/test/hello Package hello defines a simple client and server and uses them in a series of regression tests.
x/ref/test/hello/helloclient Command helloclient is a simple client mainly used in regression tests.
x/ref/test/hello/helloserver Command helloserver is a simple server mainly used in regression tests.
x/ref/test/testutil Package testutil implements utilities for unit and integration tests.
x/ref/test/timekeeper Package timekeeper implements simulated time against the interface.
x/ref/test/v23test Package v23test defines Shell, a wrapper around gosh.Shell that provides Vanadium-specific functionality such as credentials management, StartRootMountTable, and StartSyncbase.