arduino-cli-client

gRPC bindings for arduino-cli. Bindings are generated based on the protobuf definitions defined here.

Example

This examples demonstrates retrieving the list of connected boards. Make sure you run arduino-cli daemon before running this example.

You can run the example via cargo run --example list_boards.

```Rust use arduinocliclient::commands::arduinocoreclient::ArduinoCoreClient; use arduinocliclient::commands::{BoardListReq, InitReq};

[tokio::main]

async fn main() -> Result<(), Box> { let mut client = ArduinoCoreClient::connect("http://localhost:50051").await?;

// Start a new instance of the Arduino Core Service
let mut init_stream = client
    .init(InitReq {
        library_manager_only: false,
    })
    .await?
    .into_inner();

let resp_instance = init_stream.message().await?.expect("Failed to init");

// List the boards currently connected to the computer.
let resp_boards = client
    .board_list(BoardListReq {
        instance: resp_instance.instance,
    })
    .await?
    .into_inner();

print!("Boards: {:?}", resp_boards.ports);

Ok(())

} ```

Example - Client

The examples/ folder contains a client example that is analogue to arduino-cli/client-example.