Protocol Documentation

Table of Contents

Top

commands/board.proto

BoardAttachReq

Field Type Label Description
instance Instance
board_uri string
sketch_path string
search_timeout string

BoardAttachResp

Field Type Label Description
task_progress TaskProgress

BoardDetailsReq

Field Type Label Description
instance Instance
fqbn string

BoardDetailsResp

Field Type Label Description
name string
config_options ConfigOption repeated
required_tools RequiredTool repeated

BoardListAllReq

Field Type Label Description
instance Instance
search_args string repeated

BoardListAllResp

Field Type Label Description
boards BoardListItem repeated

BoardListItem

Field Type Label Description
name string
FQBN string

BoardListReq

Field Type Label Description
instance Instance

BoardListResp

Field Type Label Description
ports DetectedPort repeated

ConfigOption

Field Type Label Description
option string
option_label string
values ConfigValue repeated

ConfigValue

Field Type Label Description
value string
value_label string
selected bool

DetectedPort

Field Type Label Description
address string
protocol string
protocol_label string
boards BoardListItem repeated

RequiredTool

Field Type Label Description
name string
version string
packager string

Top

commands/commands.proto

DestroyReq

Field Type Label Description
instance Instance

DestroyResp

InitReq

Field Type Label Description
library_manager_only bool

InitResp

Field Type Label Description
instance Instance
platforms_index_errors string repeated
libraries_index_error string
download_progress DownloadProgress
task_progress TaskProgress

RescanReq

Field Type Label Description
instance Instance

RescanResp

Field Type Label Description
platforms_index_errors string repeated
libraries_index_error string

UpdateIndexReq

Field Type Label Description
instance Instance

UpdateIndexResp

Field Type Label Description
download_progress DownloadProgress

UpdateLibrariesIndexReq

Field Type Label Description
instance Instance

UpdateLibrariesIndexResp

Field Type Label Description
download_progress DownloadProgress

VersionReq

VersionResp

Field Type Label Description
version string

ArduinoCore

The main Arduino Platform Service

BOOTSTRAP COMMANDS

Method Name Request Type Response Type Description
Init InitReq InitResp stream Start a new instance of the Arduino Core Service
Destroy DestroyReq DestroyResp Destroy an instance of the Arduino Core Service
Rescan RescanReq RescanResp Rescan instance of the Arduino Core Service
UpdateIndex UpdateIndexReq UpdateIndexResp stream Update package index of the Arduino Core Service
UpdateLibrariesIndex UpdateLibrariesIndexReq UpdateLibrariesIndexResp stream Update libraries index
Version VersionReq VersionResp
BoardDetails BoardDetailsReq BoardDetailsResp Requests details about a board
BoardAttach BoardAttachReq BoardAttachResp stream
BoardList BoardListReq BoardListResp
BoardListAll BoardListAllReq BoardListAllResp
Compile CompileReq CompileResp stream
PlatformInstall PlatformInstallReq PlatformInstallResp stream
PlatformDownload PlatformDownloadReq PlatformDownloadResp stream
PlatformUninstall PlatformUninstallReq PlatformUninstallResp stream
PlatformUpgrade PlatformUpgradeReq PlatformUpgradeResp stream
Upload UploadReq UploadResp stream
PlatformSearch PlatformSearchReq PlatformSearchResp
PlatformList PlatformListReq PlatformListResp
LibraryDownload LibraryDownloadReq LibraryDownloadResp stream
LibraryInstall LibraryInstallReq LibraryInstallResp stream
LibraryUninstall LibraryUninstallReq LibraryUninstallResp stream
LibraryUpgradeAll LibraryUpgradeAllReq LibraryUpgradeAllResp stream
LibraryResolveDependencies LibraryResolveDependenciesReq LibraryResolveDependenciesResp
LibrarySearch LibrarySearchReq LibrarySearchResp
LibraryList LibraryListReq LibraryListResp

Top

commands/common.proto

DownloadProgress

Field Type Label Description
url string
file string
total_size int64
downloaded int64
completed bool

Instance

Field Type Label Description
id int32

TaskProgress

Field Type Label Description
name string
message string
completed bool

Top

commands/compile.proto

CompileReq

Field Type Label Description
instance Instance
fqbn string Fully Qualified Board Name, e.g.: arduino:avr:uno.
sketchPath string
showProperties bool Show all build preferences used instead of compiling.
preprocess bool Print preprocessed code to stdout.
buildCachePath string Builds of 'core.a' are saved into this path to be cached and reused.
buildPath string Path where to save compiled files.
buildProperties string repeated List of custom build properties separated by commas. Or can be used multiple times for multiple properties.
warnings string Used to tell gcc which warning level to use.
verbose bool Turns on verbose mode.
quiet bool Suppresses almost every output.
vidPid string VID/PID specific build properties.
exportFile string The compiled binary is written to this file
jobs int32 The max number of concurrent compiler instances to run (as make -jx)
libraries string repeated List of custom libraries paths separated by commas. Or can be used multiple times for multiple libraries paths.
optimizeForDebug bool Optimize compile output for debug, not for release
dryRun bool When set to true the compiled binary will not be copied to the export directory

CompileResp

Field Type Label Description
out_stream bytes
err_stream bytes

Top

commands/core.proto

Board

Field Type Label Description
name string
fqbn string

Platform

Field Type Label Description
ID string
Installed string
Latest string
Name string
Maintainer string
Website string
Email string
Boards Board repeated

PlatformDownloadReq

Field Type Label Description
instance Instance
platform_package string
architecture string
version string

PlatformDownloadResp

Field Type Label Description
progress DownloadProgress

PlatformInstallReq

Field Type Label Description
instance Instance
platform_package string
architecture string
version string

PlatformInstallResp

Field Type Label Description
progress DownloadProgress
task_progress TaskProgress

PlatformListReq

Field Type Label Description
instance Instance
updatable_only bool

PlatformListResp

Field Type Label Description
installed_platform Platform repeated

PlatformSearchReq

Field Type Label Description
instance Instance
search_args string
all_versions bool

PlatformSearchResp

Field Type Label Description
search_output Platform repeated

PlatformUninstallReq

Field Type Label Description
instance Instance
platform_package string
architecture string

PlatformUninstallResp

Field Type Label Description
task_progress TaskProgress

PlatformUpgradeReq

Field Type Label Description
instance Instance
platform_package string
architecture string

PlatformUpgradeResp

Field Type Label Description
progress DownloadProgress
task_progress TaskProgress

Top

commands/lib.proto

DownloadResource

Field Type Label Description
url string
archivefilename string
checksum string
size int64
cachepath string

InstalledLibrary

Field Type Label Description
library Library
release LibraryRelease

Library

Field Type Label Description
name string
author string
maintainer string
sentence string
paragraph string
website string
category string
architectures string repeated
types string repeated
install_dir string
source_dir string
utility_dir string
container_platform string
real_name string
dot_a_linkage bool
precompiled bool
ld_flags string
is_legacy bool
version string
license string
properties Library.PropertiesEntry repeated
location LibraryLocation
layout LibraryLayout

Library.PropertiesEntry

Field Type Label Description
key string
value string

LibraryDependency

Field Type Label Description
name string
version_constraint string

LibraryDependencyStatus

Field Type Label Description
name string
versionRequired string
versionInstalled string

LibraryDownloadReq

Field Type Label Description
instance Instance
name string
version string

LibraryDownloadResp

Field Type Label Description
progress DownloadProgress

LibraryInstallReq

Field Type Label Description
instance Instance
name string
version string

LibraryInstallResp

Field Type Label Description
progress DownloadProgress
task_progress TaskProgress

LibraryListReq

Field Type Label Description
instance Instance
all bool
updatable bool

LibraryListResp

Field Type Label Description
installed_library InstalledLibrary repeated

LibraryRelease

Field Type Label Description
author string
version string
maintainer string
sentence string
paragraph string
website string
category string
architectures string repeated
types string repeated
resources DownloadResource
license string
provides_includes string repeated
dependencies LibraryDependency repeated

LibraryResolveDependenciesReq

Field Type Label Description
instance Instance
name string
version string

LibraryResolveDependenciesResp

Field Type Label Description
dependencies LibraryDependencyStatus repeated

LibrarySearchReq

Field Type Label Description
instance Instance
query string

LibrarySearchResp

Field Type Label Description
libraries SearchedLibrary repeated
status LibrarySearchStatus

LibraryUninstallReq

Field Type Label Description
instance Instance
name string
version string

LibraryUninstallResp

Field Type Label Description
task_progress TaskProgress

LibraryUpgradeAllReq

Field Type Label Description
instance Instance

LibraryUpgradeAllResp

Field Type Label Description
progress DownloadProgress
task_progress TaskProgress

SearchedLibrary

Field Type Label Description
name string
releases SearchedLibrary.ReleasesEntry repeated
latest LibraryRelease

SearchedLibrary.ReleasesEntry

Field Type Label Description
key string
value LibraryRelease

LibraryLayout

Name Number Description
flat_layout 0
recursive_layout 1

LibraryLocation

Name Number Description
ide_builtin 0
user 1 (sketchbook)
platform_builtin 2
referenced_platform_builtin 3

LibrarySearchStatus

Name Number Description
failed 0
success 1

Top

commands/upload.proto

UploadReq

Field Type Label Description
instance Instance
fqbn string
sketch_path string
port string
verbose bool
verify bool
import_file string

UploadResp

Field Type Label Description
out_stream bytes
err_stream bytes

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)