blob: db94e582d5d7175b9115dde39e58da30195d97c3 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Package rpc defines interfaces for communication via remote procedure call.
//
// Concept: https://github.com/vanadium/docs/blob/master/concepts/rpc.md
// Tutorial: (forthcoming)
//
// There are two actors in the system, clients and servers. Clients invoke
// methods on Servers, using the StartCall method provided by the Client
// interface. Servers implement methods on named objects. The named object is
// found using a Dispatcher, and the method is invoked using an Invoker.
//
// Instances of the Runtime host Clients and Servers, such instances may
// simultaneously host both Clients and Servers. The Runtime allows multiple
// names to be simultaneously supported via the Dispatcher interface.
//
// The naming package provides a rendezvous mechanism for Clients and Servers.
// In particular, it allows Runtimes hosting Servers to share Endpoints with
// Clients that enables communication between them. Endpoints encode sufficient
// addressing information to enable communication.
package rpc