Skip to content

Protocol Documentation

Table of Contents

Top

observe.proto

GetAuraeDaemonLogStreamRequest

GetSubProcessStreamRequest

TODO: not implemented

Field Type Label Description
channel_type LogChannelType
process_id int64

LogItem

Field Type Label Description
channel string
line string
timestamp int64

LogChannelType

Name Number Description
CHANNEL_STDOUT 0
CHANNEL_STDERR 1

Observe

Method Name Request Type Response Type Description
GetAuraeDaemonLogStream GetAuraeDaemonLogStreamRequest LogItem stream request log stream for aurae. everything logged via log macros in aurae (info!, error!, trace!, ... ).
GetSubProcessStream GetSubProcessStreamRequest LogItem stream TODO: request log stream for a sub process

Top

runtime.proto

AllocateCellRequest

Field Type Label Description
cell Cell

AllocateCellResponse

Cell

An isolation resource used to divide a system into smaller resource boundaries.

Field Type Label Description
name string Resource parameters for control groups (cgroups) / Build on the cgroups-rs crate. / See examples
cpus string
mems string
shares uint64
quota int64
ns_share_mount bool Linux namespaces to share with the calling process. / If all values are set to false, the resulting cell / will be as isolated as possible. / / Each shared namespace is a potential security risk.
ns_share_uts bool
ns_share_ipc bool
ns_share_pid bool
ns_share_net bool
ns_share_cgroup bool

Executable

The most primitive workload in Aurae, a standard executable process.

Field Type Label Description
name string
command string
description string
cell_name string

ExecutableReference

A reference to an executable and it's parent cell.

Field Type Label Description
cell_name string
executable_name string

FreeCellRequest

Field Type Label Description
cell Cell

FreeCellResponse

StartCellRequest

Field Type Label Description
executable Executable

StartCellResponse

StopCellRequest

Field Type Label Description
executable_reference ExecutableReference

StopCellResponse

CellService

Cells is the most fundamental isolation boundary for Aurae. / A cell is an isolate set of resources of the system which can be / used to run workloads. / / A cell is composed of a unique cgroup namespace, and unshared kernel namespaces.

Method Name Request Type Response Type Description
Allocate AllocateCellRequest AllocateCellResponse Reserve requested system resources for a new cell. / For cells specifically this will allocate and reserve cgroup resources only.
Free FreeCellRequest FreeCellResponse Free up previously requested resources for an existing cell
Start StartCellRequest StartCellResponse Start a new Executable inside of an existing cell. Can be called / in serial to start more than one executable in the same cell.
Stop StopCellRequest StopCellResponse Stop one or more Executables inside of an existing cell. / Can be called in serial to stop/retry more than one executable.

Instances

TODO Instances Service

Method Name Request Type Response Type Description

Pods

TODO Pods Service

Method Name Request Type Response Type Description

Spawn

TODO Spawn Service

Method Name Request Type Response Type Description

Top

schedule.proto

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)