runtime

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 17, 2023 License: BSD-3-Clause Imports: 0 Imported by: 0

Documentation

Overview

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.

Directories

Path Synopsis
factories
fake
Package fake implements a fake RuntimeFactory, useful in tests for mocking out certain components.
Package fake implements a fake RuntimeFactory, useful in tests for mocking out certain components.
generic
Package generic implements a RuntimeFactory that is useful in tests.
Package generic implements a RuntimeFactory that is useful in tests.
library
Package library implements a RuntimeFactory suitable for building a Vanadium library that is linked into other applications.
Package library implements a RuntimeFactory suitable for building a Vanadium library that is linked into other applications.
library/internal/noflags
An example using the 'library' factory which is configured via exported variables rather than by command line flags.
An example using the 'library' factory which is configured via exported variables rather than by command line flags.
library/internal/notpreparsed
An example using the 'library' factory which is configured via exported variables rather than by command line flags.
An example using the 'library' factory which is configured via exported variables rather than by command line flags.
library/internal/preparsed
An example using the 'library' factory which is configured via exported variables rather than by command line flags.
An example using the 'library' factory which is configured via exported variables rather than by command line flags.
library/internal/withflags
An example using the 'library' factory which is configured via exported variables rather than by command line flags.
An example using the 'library' factory which is configured via exported variables rather than by command line flags.
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.
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.
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.
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.
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.
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.
flow/cipher/aead
Package aead provides a block cipher using aead.GCM with AES 256 encryption.
Package aead provides a block cipher using aead.GCM with AES 256 encryption.
flow/cipher/naclbox
Package naclbox provides a block cipher using nacl/{box,secretbox}
Package naclbox provides a block cipher using nacl/{box,secretbox}
flow/conn
This file was auto-generated by the vanadium vdl tool.
This file was auto-generated by the vanadium vdl tool.
lib/bqueue
Package bqueue implements several kinds of buffer queues, as a N-writer, 1-reader queue.
Package bqueue implements several kinds of buffer queues, as a N-writer, 1-reader queue.
lib/bqueue/drrqueue
Package drrqueue implements a deficit round-robin buffer queue.
Package drrqueue implements a deficit round-robin buffer queue.
lib/dependency
Package dependency keeps track of a dependency graph.
Package dependency keeps track of a dependency graph.
lib/deque
Package deque implements a deque using a circular array.
Package deque implements a deque using a circular array.
lib/iobuf
Package iobuf performs explicit memory management for data buffers used to perform network IO.
Package iobuf performs explicit memory management for data buffers used to perform network IO.
lib/pcqueue
A producer/consumer queue is a concurrent bounded buffer supporting multiple concurrent producers and consumers, with timeouts.
A producer/consumer queue is a concurrent bounded buffer supporting multiple concurrent producers and consumers, with timeouts.
lib/sync
Package sync provides synchronization primitives.
Package sync provides synchronization primitives.
lib/upcqueue
Package upcqueue implements an unbounded producer/consumer queue.
Package upcqueue implements an unbounded producer/consumer queue.
naming
Package naming provides an implementation of the interfaces in v.io/v23/naming.
Package naming provides an implementation of the interfaces in v.io/v23/naming.
rpc
rpc/stress
This file was auto-generated by the vanadium vdl tool.
This file was auto-generated by the vanadium vdl tool.
Usage:
rpc/stress/stress
Command stress is a tool to stress/load test RPC by issuing randomly generated requests.
Command stress is a tool to stress/load test RPC by issuing randomly generated requests.
rpc/stress/stressd
Command stressd runs the stress-test server.
Command stressd runs the stress-test server.
rpc/test
package test contains test for rpc code that do not rely on unexposed rpc declarations.
package test contains test for rpc code that do not rely on unexposed rpc declarations.
rt
test/concurrency
Package concurrency implements a framework for systematic testing of concurrent vanadium Go programs.
Package concurrency implements a framework for systematic testing of concurrent vanadium Go programs.
rpc/benchmark Module
protocols
bidi
This file was auto-generated by the vanadium vdl tool.
This file was auto-generated by the vanadium vdl tool.
lib/framer
Package framer provides the ability to wrap a network connection (or any io.ReadWriteCloser) with framing that consists of a 3-byte length followed by data of that length.
Package framer provides the ability to wrap a network connection (or any io.ReadWriteCloser) with framing that consists of a 3-byte length followed by data of that length.
lib/tcputil
package tcputil contains functions commonly used to manipulate TCP connections.
package tcputil contains functions commonly used to manipulate TCP connections.
lib/websocket
This file was auto-generated by the vanadium vdl tool.
This file was auto-generated by the vanadium vdl tool.
tcp
vine
Package vine contains Vanadium's Implementation of Network Emulation (VINE).
Package vine contains Vanadium's Implementation of Network Emulation (VINE).
ws
wsh
Package wsh registers the websocket 'hybrid' protocol.
Package wsh registers the websocket 'hybrid' protocol.
wsh_nacl
Package wsh_nacl registers the websocket 'hybrid' protocol for nacl architectures.
Package wsh_nacl registers the websocket 'hybrid' protocol for nacl architectures.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL