blob: c29640443b216ba271b730952ebf75e922f15932 [file] [log] [blame]
Jiri Simsad7616c92015-03-24 23:44:30 -07001// Copyright 2015 The Vanadium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
Suharsh Sivakumar40e52e92015-05-11 15:37:00 -07005// Package runtime and its subdirectories provide implementations of the
6// Vanadium runtime for different runtime environments.
Cosmos Nicolaou6c6fa112014-08-19 13:22:33 -07007//
Suharsh Sivakumar40e52e92015-05-11 15:37:00 -07008// Each subdirectory of the runtime/factories package is a package that
9// implements the v23.RuntimeFactory function.
Cosmos Nicolaou6c6fa112014-08-19 13:22:33 -070010//
Suharsh Sivakumar40e52e92015-05-11 15:37:00 -070011// runtime/internal has common functionality use in runtime/factories.
Cosmos Nicolaou6c6fa112014-08-19 13:22:33 -070012//
Suharsh Sivakumar40e52e92015-05-11 15:37:00 -070013// RuntimeFactories register themselves by calling v.io/v23/rt.RegisterRuntimeFactory
14// in an init function. Users choose a particular RuntimeFactory implementation
15// by importing the appropriate package in their main package. It is an error
16// to import more than one RuntimeFactory, and the registration mechanism will
17// panic if this is attempted.
18//
19// The 'roaming' RuntimeFactory adds operating system support for varied network
Cosmos Nicolaou6c6fa112014-08-19 13:22:33 -070020// configurations and in particular dhcp. It should be used by any application
Suharsh Sivakumar40e52e92015-05-11 15:37:00 -070021// that may 'roam' or be behind a 1-1 NAT.
22//
23// The 'static' RuntimeFactory does not provide dhcp support, but is otherwise
24// like the 'roaming' RuntimeFactory.
25package runtime