Package runtime and its subdirectories provide implementations of the Vanadium runtime for different runtime environments.
Each subdirectory of the runtime/factories package is a package that implements the v23.RuntimeFactory function.
runtime/internal has common functionality use in runtime/factories.
RuntimeFactories register themselves by calling v.io/v23/rt.RegisterRuntimeFactory in an init function. Users choose a particular RuntimeFactory implementation by importing the appropriate package in their main package. It is an error to import more than one RuntimeFactory, and the registration mechanism will panic if this is attempted.
The 'roaming' RuntimeFactory adds operating system support for varied network configurations and in particular dhcp. It should be used by any application that may 'roam' or be behind a 1-1 NAT.
The 'static' RuntimeFactory does not provide dhcp support, but is otherwise like the 'roaming' RuntimeFactory.
|factories/fake||Package fake implements a fake RuntimeFactory, useful in tests for mocking out certain components.|
|factories/generic||Package generic implements a RuntimeFactory that is useful in tests.|
|factories/library||Package library implements a RuntimeFactory suitable for building a Vanadium library that is linked into other applications.|
|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.|
|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.|
|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.|
|internal/lib/dependency||Package dependency keeps track of a dependency graph.|
|internal/lib/deque||Package deque implements a deque using a circular array.|
|internal/lib/sync||Package sync provides synchronization primitives.|
|internal/lib/upcqueue||Package upcqueue implements an unbounded producer/consumer queue.|
|internal/naming||Package naming provides an implementation of the interfaces in v.io/v23/naming.|
|internal/rpc/benchmark||package benchmark provides simple tools to measure the performance of the IPC system.|
|internal/rpc/benchmark/benchmark||Command benchmark runs the benchmark client.|
|internal/rpc/benchmark/benchmarkd||Command benchmarkd runs the benchmark server.|
|internal/rpc/stress/mtstress||Usage: mtstress [flags] <command>|
|internal/rpc/stress/stress||Command stress is a tool to stress/load test RPC by issuing randomly generated requests.|
|internal/rpc/stress/stressd||Command stressd runs the stress-test server.|
|internal/rpc/test||package test contains test for rpc code that do not rely on unexposed rpc declarations.|
|internal/vtrace||Package vtrace implements the Trace and Span interfaces in v.io/v23/vtrace.|
|protocols/lib/tcputil||package tcputil contains functions commonly used to manipulate TCP connections.|
|protocols/vine||Package vine contains Vanadium's Implementation of Network Emulation (VINE).|
|protocols/wsh||Package wsh registers the websocket 'hybrid' protocol.|
|protocols/wsh_nacl||Package wsh_nacl registers the websocket 'hybrid' protocol for nacl architectures.|