You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: dev/integration-options/index.html
+11-11Lines changed: 11 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -1456,8 +1456,8 @@ <h1 id="the-three-pillars-of-the-arduino-cli">The three pillars of the Arduino C
1456
1456
compile, verify and upload sketches to Arduino boards and that’s capable of managing all the software and tools needed
1457
1457
in the process. But don’t get fooled by its name: Arduino CLI can do much more than the average console application, as
1458
1458
shown by <ahref="https://github.com/arduino/arduino-ide">Arduino IDE 2.x</a> and <ahref="https://cloud.arduino.cc/home">Arduino Cloud</a>, which rely on it for similar purposes but each one in a
1459
-
completely different way from the other. In this article we introduce the three pillars of the Arduino CLI, explaining
1460
-
how we designed the software so that it can be effectively leveraged under different scenarios.</p>
1459
+
completely different way from the other. In this article we introduce the three pillars of the Arduino CLI, explaining how
1460
+
we designed the software so that it can be effectively leveraged under different scenarios.</p>
1461
1461
<h2id="the-first-pillar-command-line-interface">The first pillar: command line interface<aclass="headerlink" href="#the-first-pillar-command-line-interface" title="Permanent link">¶</a></h2>
1462
1462
<h3id="console-applications-for-humans">Console applications for humans<aclass="headerlink" href="#console-applications-for-humans" title="Permanent link">¶</a></h3>
1463
1463
<p>As you might expect, the first way to use the Arduino CLI is from a terminal and by a human, and user experience plays a
@@ -1564,15 +1564,14 @@ <h3 id="console-applications-for-robots">Console applications for robots<a class
1564
1564
}
1565
1565
</code></pre></div>
1566
1566
<p>Even if not related to software design, one last feature that’s worth mentioning is the availability of a one-line
1567
-
<ahref="../installation/#use-the-install-script">installation script</a> that can be used to make the latest version of the Arduino CLI available on most systems with an
1568
-
HTTP client like curl or wget and a shell like bash.</p>
1567
+
<ahref="../installation/#use-the-install-script">installation script</a> that can be used to make the latest version of the Arduino CLI available on most systems with an HTTP
1568
+
client like curl or wget and a shell like bash.</p>
1569
1569
<p>For more information on Arduino CLI's command line interface, see the <ahref="../commands/arduino-cli/">command reference</a>.</p>
1570
1570
<h2id="the-second-pillar-grpc-interface">The second pillar: gRPC interface<aclass="headerlink" href="#the-second-pillar-grpc-interface" title="Permanent link">¶</a></h2>
1571
1571
<p><ahref="https://grpc.io/">gRPC</a> is a high performance <ahref="https://en.wikipedia.org/wiki/Remote_procedure_call">RPC</a> framework that can efficiently connect client and server applications. The Arduino
1572
-
CLI can act as a gRPC server (we call it <ahref="../commands/arduino-cli_daemon/">daemon mode</a>), exposing a set of procedures that implement the very same set
1573
-
of features of the command line interface and waiting for clients to connect and use them. To give an idea, the
1574
-
following is some <ahref="https://go.dev/">Golang</a> code capable of retrieving the version number of a remote running Arduino CLI server
1575
-
instance:</p>
1572
+
CLI can act as a gRPC server (we call it <ahref="../commands/arduino-cli_daemon/">daemon mode</a>), exposing a set of procedures that implement the very same set of
1573
+
features of the command line interface and waiting for clients to connect and use them. To give an idea, the following is
1574
+
some <ahref="https://go.dev/">Golang</a> code capable of retrieving the version number of a remote running Arduino CLI server instance:</p>
1576
1575
<divclass="highlight"><pre><span></span><code><spanclass="c1">// This file is part of arduino-cli.</span>
1577
1576
<spanclass="c1">//</span>
1578
1577
<spanclass="c1">// Copyright 2024 ARDUINO SA (http://www.arduino.cc/)</span>
@@ -1634,8 +1633,8 @@ <h2 id="the-third-pillar-embedding">The third pillar: embedding<a class="headerl
1634
1633
offered by the Arduino CLI, so that when we provide a fix or a new feature, they are automatically available to both the
1635
1634
command line and gRPC interfaces. The source modules implementing this API are implemented through the <code>commands</code>
1636
1635
package, and it can be imported in other Golang programs to embed a full-fledged Arduino CLI. For example, this is how
1637
-
some backend services powering <ahref="https://cloud.arduino.cc/home">Arduino Cloud</a> can compile sketches and manage libraries. Just to give you a taste of
1638
-
what it means to embed the Arduino CLI, here is how to search for a core using the API:</p>
1636
+
some backend services powering <ahref="https://cloud.arduino.cc/home">Arduino Cloud</a> can compile sketches and manage libraries. Just to give you a taste of what
1637
+
it means to embed the Arduino CLI, here is how to search for a core using the API:</p>
1639
1638
<divclass="highlight"><pre><span></span><code><spanclass="c1">// This file is part of arduino-cli.</span>
1640
1639
<spanclass="c1">//</span>
1641
1640
<spanclass="c1">// Copyright 2024 ARDUINO SA (http://www.arduino.cc/)</span>
<p>You can start playing with the Arduino CLI right away. The code is open source and <ahref="https://github.com/arduino/arduino-cli">the repo</a>
1716
1715
contains <ahref="https://github.com/arduino/arduino-cli/blob/master/rpc/internal/client_example">example code showing how to implement a gRPC client</a>. If you’re curious about how we
1717
1716
designed the low level API, have a look at the <ahref="https://github.com/arduino/arduino-cli/tree/master/commands">commands package</a> and don’t hesitate to leave feedback on the <ahref="https://github.com/arduino/arduino-cli/issues">issue
1718
-
tracker</a> if you’ve got a use case that doesn’t fit one of the three pillars.</p>
1717
+
tracker</a>
1718
+
if you’ve got a use case that doesn’t fit one of the three pillars.</p>
0 commit comments