Projects

A CLI for EdgeX Foundry

3 Minute Read

By Alex Courouble 

EdgeX Foundry, an open source project sponsored by the Linux Foundation and founded by Dell Technologies, has more than 66 contributors from companies such as HP, Intel and VMware.  EdgeX is a common open framework for IoT edge computing that supports multiple sensor data protocols such as bluetooth, coapp and zigbee. As the VMware MAPBU continues to focus on cloud native technologies and modern applications, the handling of the spectrum of edge sizes, security and intermittent connectivity is key.

CLI

EdgeX Foundry has proven its utility in the open source IoT space (including in automotive), but the tool can be tricky for first-time users. Last summer, I proposed and then built out a command line interface (CLI) for EdgeX that is now available for the community to try.

Of course, a lot of open source software projects create a CLI at some point. EdgeX had been developing so quickly, however, that none of us had time to build one. But early last year, it became clear to me that it would really help both newcomers and experienced developers if they could run instances of EdgeX from their terminal command lines.

I put together a prototype that I shared with the EdgeX open source community in May, and there was consensus to build it out. Together with the VMware Open Source IoT and Edge team and several valued EdgeX colleagues from other EdgeX member companies, I did that over the summer. A more polished version was presented to the community in late fall, and people are already using it in their day-to-day development activities. It’s not quite a 1.0 release, but the initial feature set is holding steady as we work on testing and bug fixes prior to formalizing the release.

The new EdgeX CLI wraps around EdgeX’s existing APIs so nothing in EdgeX itself has changed.  It is now a lot easier to call those API endpoints. If you are a newcomer to the project, you no longer need to come in knowing the APIs that are available to call or even the objects that EdgeX can handle. The CLI is self-documented, displaying a menu that provides your options for each command available.

The CLI also helps experienced developers working on core EdgeX features who require fast testing capabilities. It’s highly configurable and conveniently built in Go, the same language in which EdgeX is written.

I’ve created a video demo explaining how to download and install EdgeX from the EdgeX repository on GitHub, download the CLI source code from the EdgeX holding repository, and then build the CLI locally on your machine.

The CLI GitHub page also has all the information you need to install.

CLI
EdgeX CLI Menu

When you install the CLI, it shows you a list of available top-level commands (device, event, version, profile, interval, etc.). Every command has a set of subcommands, which can be revealed by running the relevant top-level command.

It’s then simple to perform tasks such as adding or removing devices and profiles from your EdgeX instance, listing events by device or readings, or checking the status of the different microservices that you are running.

I invite you to try out the CLI the next time you are working with EdgeX. Please let me know if you have any feedback after using the tool or would like to help improve it.

Stay tuned to the Open Source Blog for more around open source at VMware and be sure to follow us on Twitter (@vmwopensource) for all the latest open source insights and updates.