import "v.io/x/ref"
Package ref defines constants used through the Vanadium reference implementation, which is implemented in its subdirectories.
const ( // EnvCredentials is the name of the environment variable pointing to a // directory containing all the credentials of a principal (the blessing // store, the blessing roots, possibly the private key etc.). // // Typically only one of EnvCredentials or EnvAgentPath will be set in a // process. If both are set, then EnvCredentials takes preference. // // See v.io/x/ref/lib/security.CreatePersistentPrincipal. EnvCredentials = "V23_CREDENTIALS" // When set and non-empty, EnvCredentials is hosted on a read-only // filesystem. EnvCredentialsReadonlyFileSystem = "V23_CREDENTIALS_READONLY_FILESYSTEM" // EnvCredentialsNoLockDeprecated and V23_CREDENTIALS_NO_LOCK will // be removed in a subsequent release. This is essentially an alias // for V23_CREDENTIALS_READONLY_FILESYSTEM which should be used // instead. EnvCredentialsNoLockDeprecated = "V23_CREDENTIALS_NO_LOCK" // EnvCredentialsReloadInterval is the name of the environment variable // that specifies the interval between credentials reloads. EnvCredentialsReloadInterval = "V23_CREDENTIALS_RELOAD_INTERVAL" // EnvNamespacePrefix is the prefix of all environment variables that // define a namespace root. EnvNamespacePrefix = "V23_NAMESPACE" // EnvI18nCatalogueFiles is the name of the environment variable // pointing to a comma-separated list of i18n catalogue files to be // loaded at startup. EnvI18nCatalogueFiles = "V23_I18N_CATALOGUE" // EnvOAuthIdentityProvider is the name of the environment variable // pointing to the url of the OAuth identity provider used by the // principal seekblessings command. EnvOAuthIdentityProvider = "V23_OAUTH_IDENTITY_PROVIDER" // When EnvExpectGoogleComputeEngine is set and non-empty, the runtime // initialization will fail if the GCE metadata is inaccessible. // Deprecated: use V23_VIRTUALIZATION_PROVIDER instead. EnvExpectGoogleComputeEngine = "V23_EXPECT_GOOGLE_COMPUTE_ENGINE" // EnvVirtualizationProvider is the name of the environment variable // naming the virtualization/cloud provider that the process is // expected to be run under. It replaces EnvExpectGoogleComputeEngine. EnvVirtualizationProvider = "V23_VIRTUALIZATION_PROVIDER" // A comma-separated list of path names to export disk stats for. EnvSysStatsDiskPaths = "V23_SYS_STATS_DISK_PATHS" // When set and non-empty, the namespace client will not use caching. EnvDisableNamespaceCache = "V23_DISABLE_NS_CACHE" )
EnvClearCredentials unsets all environment variables that are used by the Runtime to initialize the principal.
EnvNamespaceRoots returns the set of namespace roots to be used by the process, as specified by environment variables.
It returns both a map of environment variable name to value and the list of values.
ReadonlyCredentialsDir returns true if the credentials directory is to be treated as readonly, for example, because it exists on a read-only filesystem. Any attempt to write to this directory should result in an error. It also returns the reason that the directory is considered readonly, for now, the name of the environment variable that is used to indicate this.
Path | Synopsis |
---|---|
cmd/gclogs | Command gclogs safely deletes old log files. |
cmd/mounttable | Command mounttable sends commands to Vanadium mounttable services. |
cmd/namespace | Command namespace resolves and manages names in the Vanadium namespace. |
cmd/principal | Command principal creates and manages Vanadium principals and blessings. |
cmd/uniqueid | Command uniqueid generates unique identifiers. |
cmd/vdl | Command vdl manages Vanadium Definition Language source code. |
cmd/vom | Command vom helps debug the Vanadium Object Marshaling wire protocol. |
cmd/vrpc | Command vrpc sends and receives Vanadium remote procedure calls. |
cmd/vrpc/internal | nolint:golint |
examples/echo | |
examples/echo/echo | Command echo is a client for the Echo service. |
examples/echo/echod | Command echo is a server for the Echo service. |
examples/fortune | Package fortune defines the Fortune example interface. |
examples/fortune/fortune | Command fortune is a client to the Fortune interface. |
examples/fortune/fortuned | Command fortuned runs a daemon that implements the Fortune interface. |
examples/fortune/fortuned/internal | |
examples/noflags | An example using the 'library' factory which is configured via exported variables rather than by command line flags. |
examples/rps | Package rps defines interfaces for playing the game Rock-Paper-Scissors. |
examples/rps/internal | Package internal defines common functions used by both rock paper scissors clients and servers. |
examples/rps/rpsbot | Command rpsbot repeatedly runs automated games, implementing all three roles. |
examples/rps/rpsplayer | Command rpsplayer implements the Player interface, which enables a human to play the game. |
examples/rps/rpsscorekeeper | Command rpsscorekeeper implements the ScoreKeeper interface. |
examples/tunnel | Package tunnel defines an interface for creating a network tunnel from client to server. |
examples/tunnel/internal | Package internal defines common types and functions used by both tunnel clients and servers. |
examples/tunnel/tunneld | Command tunneld runs the tunneld daemon, which implements the Tunnel interface. |
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. |
internal/logger | Package logger provides access to an implementation of v23/logger.Logging for use within a runtime implementation. |
internal/reflectutil | Package reflectutil provides reflection-based utilities. |
lib/apilog | Package apilog provides functions to be used in conjunction with logcop. |
lib/discovery | |
lib/discovery/factory | |
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. |
lib/discovery/plugins/mdns | Package mdns implements mDNS plugin for discovery service. |
lib/discovery/plugins/mock | |
lib/discovery/plugins/testutil | |
lib/discovery/plugins/vine | Package vine contains a discovery plugin that is using Vine protocol. |
lib/discovery/test | package test contains tests that rely on a fake runtime. |
lib/discovery/testutil | Package testutil defines helpers for discovery tests. |
lib/dispatcher | |
lib/exec | Package exec implements configuration and secret-sharing between parent and child processes via anoymous pipes. |
lib/flags | Package flags implements utilities to augment the standard Go flag package. |
lib/flags/sitedefaults | |
lib/publisher | Package publisher provides a type to publish names to a mounttable. |
lib/pubsub | Package pubsub defines interfaces for accessing dynamically changing process configuration information. |
lib/raft | nolint:golint |
lib/security | Package security implements utilities for creating and using Vanadium security primitives. |
lib/security/audit | Package audit implements a mechanism for writing auditable events to an audit log. |
lib/security/bcrypter | Package bcrypter defines the mechanisms for blessings based encryption and decryption. |
lib/security/internal | |
lib/security/internal/lockedfile | Package lockedfile creates and manipulates files whose contents should only change atomically. |
lib/security/internal/lockedfile/filelock | Package filelock provides a platform-independent API for advisory file locking. |
lib/security/internal/lockedfile/testenv | |
lib/security/passphrase | Package passphrase contains utilities for reading a passphrase. |
lib/security/securityflag | Package securityflag implements utilities for creating security objects based on flags. |
lib/security/serialization | Package serialization implements utilities for reading and writing data with signature-based integrity checking. |
lib/security/signing | |
lib/security/signing/internal | |
lib/security/signing/keyfile | Package keyfile provides a signing service that uses files to store keys. |
lib/security/signing/sshagent | Package sshagent provides the ability to use openssh's ssh-agent to carry out key signing operations using keys stored therein. |
lib/signals | Package signals implements utilities for managing process shutdown with support for signal-handling. |
lib/stats | Package stats implements a global repository of stats objects. |
lib/stats/counter | Package counter implements counters that keeps track of their recent values over different periods of time. |
lib/stats/histogram | Package histogram implements a basic histogram to keep track of data distribution. |
lib/stats/sysstats | Package sysstats implements system statistics and updates them periodically. |
lib/timekeeper | Package timekeeper defines an interface to allow switching between real time and simulated time. |
lib/v23cmd | Package v23cmd implements utilities for running v23 cmdline programs. |
lib/vdl/build | Package build implements utilities to collect VDL build information and run the parser and compiler. |
lib/vdl/build/internal/builtinvdlroot | |
lib/vdl/codegen | Package codegen implements utilities for VDL code generators. |
lib/vdl/codegen/golang | Package golang implements Go code generation from compiled VDL packages. |
lib/vdl/codegen/java | Package java implements Java code generation from compiled VDL packages. |
lib/vdl/codegen/javascript | Package javascript implements Javascript code generation from compiled VDL packages. |
lib/vdl/codegen/json | Package json implements JSON generation for VDL const values. |
lib/vdl/codegen/swift | Package swift implements Swift code generation from compiled VDL packages. |
lib/vdl/codegen/vdlgen | Package vdlgen implements VDL code generation from compiled VDL packages. |
lib/vdl/compile | Package compile implements the VDL compiler, converting a parse tree into compiled results. |
lib/vdl/internal/vdltestutil | Package vdltestutil provides testing utilities for v.io/x/ref/lib/vdl/... |
lib/vdl/opconst | Package opconst defines the representation and operations for VDL constants. |
lib/vdl/parse | Package parse implements the VDL parser, converting source files into a parse tree. |
lib/vdl/vdlutil | Package vdlutil implements utilities used by many VDL components. |
runtime | Package runtime and its subdirectories provide implementations of the Vanadium runtime for different runtime environments. |
runtime/factories/fake | Package fake implements a fake RuntimeFactory, useful in tests for mocking out certain components. |
runtime/factories/generic | Package generic implements a RuntimeFactory that is useful in tests. |
runtime/factories/library | Package library implements a RuntimeFactory suitable for building a Vanadium library that is linked into other applications. |
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. |
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. |
runtime/internal | |
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. |
runtime/internal/cloudvm/cloudpaths | |
runtime/internal/cloudvm/cloudvmtest | |
runtime/internal/flow | |
runtime/internal/flow/conn | nolint:golint |
runtime/internal/flow/crypto | |
runtime/internal/flow/flowtest | |
runtime/internal/flow/manager | |
runtime/internal/lib/dependency | Package dependency keeps track of a dependency graph. |
runtime/internal/lib/deque | Package deque implements a deque using a circular array. |
runtime/internal/lib/sync | Package sync provides synchronization primitives. |
runtime/internal/lib/upcqueue | Package upcqueue implements an unbounded producer/consumer queue. |
runtime/internal/naming | Package naming provides an implementation of the interfaces in v.io/v23/naming. |
runtime/internal/naming/namespace | |
runtime/internal/platform | |
runtime/internal/rpc | |
runtime/internal/rpc/benchmark | package benchmark provides simple tools to measure the performance of the IPC system. |
runtime/internal/rpc/benchmark/benchmark | Command benchmark runs the benchmark client. |
runtime/internal/rpc/benchmark/benchmarkd | Command benchmarkd runs the benchmark server. |
runtime/internal/rpc/benchmark/internal | |
runtime/internal/rpc/stress | |
runtime/internal/rpc/stress/internal | |
runtime/internal/rpc/stress/mtstress | Usage: mtstress [flags] <command> |
runtime/internal/rpc/stress/stress | Command stress is a tool to stress/load test RPC by issuing randomly generated requests. |
runtime/internal/rpc/stress/stressd | Command stressd runs the stress-test server. |
runtime/internal/rpc/test | package test contains test for rpc code that do not rely on unexposed rpc declarations. |
runtime/internal/rpc/version | |
runtime/internal/rt | |
runtime/internal/testing/mocks/naming | |
runtime/internal/vtrace | Package vtrace implements the Trace and Span interfaces in v.io/v23/vtrace. |
runtime/protocols/bidi | |
runtime/protocols/debug | |
runtime/protocols/lib/framer | nolint:golint |
runtime/protocols/lib/tcputil | package tcputil contains functions commonly used to manipulate TCP connections. |
runtime/protocols/lib/websocket | nolint:golint |
runtime/protocols/local | |
runtime/protocols/tcp | |
runtime/protocols/vine | Package vine contains Vanadium's Implementation of Network Emulation (VINE). |
runtime/protocols/ws | |
runtime/protocols/wsh | Package wsh registers the websocket 'hybrid' protocol. |
runtime/protocols/wsh_nacl | Package wsh_nacl registers the websocket 'hybrid' protocol for nacl architectures. |
services/ben | Package ben defines datastructures to archive microbenchmark results. |
services/ben/archive | Package archive defines the RPC interface for archiving benchmark results. |
services/ben/benarchd | Command benarchd implements a benchmark archival daemon. |
services/ben/benarchd/internal | go:generate ./gen_assets.sh |
services/ben/benarchd/internal/assets | |
services/debug/debug | Command debug supports debugging Vanadium servers. |
services/debug/debug/browseserver | Package browseserver provides a web interface that can be used to interact with the vanadium debug interface. |
services/debug/debuglib | Package debuglib implements debug server support. |
services/discharger | Package discharger defines an interface for obtaining discharges for third-party caveats. |
services/http/http | |
services/http/httplib | |
services/identity | Package identity defines interfaces for Vanadium identity providers. |
services/identity/identityd | Command identityd runs a daemon HTTP server that uses OAuth to create security.Blessings objects. |
services/identity/identitylib | Package identitylib implements a test identityd service registered using the v.io/x/lib/gosh library. |
services/identity/internal/auditor | |
services/identity/internal/blesser | |
services/identity/internal/caveats | |
services/identity/internal/dischargerlib | |
services/identity/internal/handlers | |
services/identity/internal/oauth | Package oauth implements an http.Handler that has two main purposes listed below: |
services/identity/internal/revocation | nolint:golint |
services/identity/internal/server | HTTP server that uses OAuth to create security.Blessings objects. |
services/identity/internal/templates | |
services/identity/internal/util | Package util implements miscellaneous utility functions needed by the identity HTTP server. |
services/internal/dbutil | Package dbutil implements utilities for opening and configuring connections to MySQL-like databases, with optional TLS support. |
services/internal/dirprinter | Package dirprinter contains utilities for dumping the contents and structure of a directory tree. |
services/internal/httplib | |
services/internal/logreaderlib | Package logreaderlib implements the LogFile interface from v.io/v23/services/logreader, which can be used to allow remote access to log files, and the ChildrenGlobber interface from v.io/v23/rpc to find the files in a logs directory. |
services/internal/multipart | Package multipart implements an http.File that acts as one logical file backed by several physical files (the 'parts'). |
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. |
services/internal/pproflib | Package pproflib defines a client-side proxy and server-side implementation of the v.io/v23/services/pprof interface. |
services/internal/restsigner | |
services/internal/restsigner/rest_signer_test | |
services/internal/restsigner/signer/v1 | Package signer provides access to the . |
services/internal/servicetest | Package servicetest provides functionality to help write tests for the Vanadium services. |
services/internal/statslib | Package statslib implements the Stats interface from v.io/v23/services/stats. |
services/internal/vtracelib | |
services/mounttable/mounttabled | Command mounttabled runs the mount table daemon, which implements the v.io/v23/services/mounttable interfaces. |
services/mounttable/mounttablelib | Package mounttablelib implements utilities for mounttable implementations. |
services/role | Package role defines an interface for requesting blessings from a role account server. |
services/role/roled | Command roled runs the Role interface daemon. |
services/role/roled/internal | Package internal implements the role service defined in v.io/x/ref/services/role |
services/stats | Packages stats defines the non-native types exported by the stats service. |
services/xproxy | Package xproxy enables services to export (proxy) themselves across networks (behind NATs for example). |
services/xproxy/xproxy | Package xproxy contains the implementation of the proxy service. |
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. |
test | Package test implements initialization for unit and integration tests. |
test/basics | Package basics implements some benchmarks for important basic operations in go. |
test/benchmark | Package benchmark implements utilities to augment the standard Go testing.Benchmark functionality. |
test/expect | Package expect implements support for checking expectations against a buffered input stream. |
test/goroutines | |
test/hello | Package hello defines a simple client and server and uses them in a series of regression tests. |
test/hello/helloclient | Command helloclient is a simple client mainly used in regression tests. |
test/hello/helloserver | Command helloserver is a simple server mainly used in regression tests. |
test/testutil | Package testutil implements utilities for unit and integration tests. |
test/testutil/testsshagent | |
test/timekeeper | Package timekeeper implements simulated time against the v.io/x/ref/lib/timekeeper.TimeKeeper interface. |
test/v23test | Package v23test defines Shell, a wrapper around gosh.Shell that provides Vanadium-specific functionality such as credentials management, StartRootMountTable, and StartSyncbase. |
Package ref imports 2 packages (graph) and is imported by 56 packages. Updated 2021-01-18. Refresh now. Tools for package owners.