Arduino Package Manager

apm (Arduino Package Manager)

Go Go Report Card Go Reference GitHub go.mod Go version of a Go module GitHub release

A package manager for Arduino projects to make them portable (no more manual download etc...).

This tool fully includes the official arduino-cli (it won't be installed nor need to be installed) so it is automatically compatible with any kind of Arduino projects/sketches.

Features

A package manager for Arduino projects.
The official arduino-cli packages are used to perform actions.

Usage:
  apm [command]

Available Commands:
  add         Adding new libraries to the project
  help        Help about any command
  init        Init APM project
  install     Install dependencies of project
  remove      Remove library from the project

Flags:
  -h, --help                 help for apm
  -p, --project-dir string   Project directory to use (default "/Users/klavorar/Documents/Arduino/temp_sensor")

Use "apm [command] --help" for more information about a command.

Demo

https://asciinema.org/a/6L1JlVsEZMZdvUC8in2b4mjqc asciicast

Installation

Install on Linux/MacOS

Run the following in your terminal to install the latest version of apm

curl -s https://raw.githubusercontent.com/ksrichard/apm/master/install.sh | sh

Install on Windows

Download the latest version of apm from https://github.com/ksrichard/apm/releases/latest for Windows (apm_windows_amd64.exe), rename it to apm.exe and put it on path.

How it works

Every apm based project must have a file called apm.json in the project root (it can be create by running apm init) This configuration file is containing all the information that an Arduino project needs.

NOTE on versioning - if you would like to use always the latest version, please use latest in any package version and always latest will be used!

apm.json structure:

  • board - (Optional) you can select here the package/architecture of the board you will use, it will be automatically installed
    • package - Arduino core package name
    • architecture - Architecture of Arduino core package
    • version - Version of core package (latest for always latest version)
    • board_manager_url - (Optional) Additional Board Manager URL if needed for the board core package to be installed
  • dependencies - (Optional, if empty, no dependencies will be installed of course) contains all Arduino Library dependencies that the actual project needs (if any Version mismatch will be in place, process will be stopped)
    • library - Arduino Library name
    • version - Arduino Library version
    • git - (Optional - if it's set, do not set library and version) install library from git repository
    • zip - (Optional - if it's set, do not set library and version) install library from local zip file

Example apm.json:

{
    "board": {
        "package": "esp8266",
        "architecture": "esp8266",
        "version": "latest",
        "board_manager_url": "https://arduino.esp8266.com/stable/package_esp8266com_index.json"
    },
    "dependencies": [
        {
            "library": "HomeKit-ESP8266",
            "version": "1.2.0"
        },
        {
            "library": "OneWire",
            "version": "latest"
        },
        {
            "library": "DallasTemperature",
            "version": "latest"
        },
        {
            "git": "https://github.com/jandrassy/ArduinoOTA"
        },
        {
            "zip": "ESP8266NetBIOS.zip"
        }
    ]
}
Owner
Similar Resources

Terraform Provider for Azure (Resource Manager)Terraform Provider for Azure (Resource Manager)

Terraform Provider for Azure (Resource Manager)Terraform Provider for Azure (Resource Manager)

Terraform Provider for Azure (Resource Manager) Version 2.x of the AzureRM Provider requires Terraform 0.12.x and later, but 1.0 is recommended. Terra

Oct 16, 2021

Go package that interfaces with AWS System Manager

go-aws-ssm Go package that interfaces with AWS System Manager. Why to use go-aws-ssm and not the aws-sdk-go? This package is wrapping the aws-sdk-go a

Nov 12, 2022

A download manager package for Go

grab Downloading the internet, one goroutine at a time! $ go get github.com/cavaliercoder/grab Grab is a Go package for downloading files from the in

Jan 1, 2023

Interactive package manager and resource monitor designed for the GNU/Linux.

Interactive package manager and resource monitor designed for the GNU/Linux.

pkgtop is an interactive package manager & resource monitor tool designed for the GNU/Linux. Package management (install/upgrade/remove etc.) can be a

Dec 28, 2022

The package manager for macOS you didn’t know you missed. Simple, functional, and fast.

The package manager for macOS you didn’t know you missed. Simple, functional, and fast.

Stew The package manager for macOS you didn’t know you missed. Built with simplicity, functionality, and most importantly, speed in mind. Installation

Mar 30, 2022

A download manager package for Go

grab Downloading the internet, one goroutine at a time! $ go get github.com/cavaliercoder/grab Grab is a Go package for downloading files from the in

Dec 29, 2022

🦄 Easy, fast and open-source local package manager for Python!

Unikorn 🦄 Easy, fast and open-source local package manager for Python! Key Features Speed: You can add a package in one second.

Dec 11, 2021

gPac - a linux package manager

gPac is a useless package manager. It is included in the gSuite, which is a suite of tools written in GO. gPac is a KISS - like package manager.

Mar 13, 2022

GoFish is a cross-platform systems package manager, bringing the ease of use of Homebrew to Linux and Windows.

GoFish is a cross-platform systems package manager, bringing the ease of use of Homebrew to Linux and Windows.

Dec 11, 2022

Package manager for future projects

PCKGER is a package manager for my next project but when it will be able to build binaries and move libs it will be used like a normal package manager

Dec 20, 2021

gobin is a package manager for /go/bin

gobin gobin is a package manager for /go/bin Features List installed packages. Check for updates. Install packages (like go install). Uninstall packag

Nov 12, 2022

Package manager for minecraft servers

KoperManager Package manager for minecraft servers Install minecraft server software and plugins in 1 click command Setup server ./koper_manager setup

Dec 23, 2021

Clones dependencies from .resolved file of Swift Package Manager.

SPM-dep-cloner Clones dependencies from .resolved file of Swift Package Manager. Useful for setup of new project with dependencies in another repos. H

Nov 29, 2021

Go module with token package to request Azure Resource Manager and Azure Graph tokens.

azAUTH Go module with token package to request Azure Resource Manager and Azure Graph tokens. prerequisites Install azure cli: https://docs.microsoft.

Dec 1, 2021

A package manager written in Go which uses the LFS Symlink method.

pacsym A package manager powered by symlinks. How to use The package manager assumes that all software installed is installed with /usr/pkg/packagena

Dec 11, 2021

A Golang package for simplifying storing configuration in the OS-provided secret manager.

go-keyconfig A Golang package for simplifying storing configuration in the OS-provided secret manager. Operating System Support OS Secret Manager MacO

Jul 22, 2022

The missing package manager for golang binaries (its homebrew for "go install")

Bingo: The missing package manager for golang binaries (its homebrew for "go install") Do you love the simplicity of being able to download & compile

Oct 31, 2022

Io's package manager

Io's package manager

Amirani Io's package manager Contributors ✨ Thanks goes to these wonderful people (emoji key): an aspirin 💻 📖 🔧 🚧 This project follows the all-con

Feb 20, 2022

📦 An independent package manager for compiled binaries.

📦 An independent package manager for compiled binaries.

stew An independent package manager for compiled binaries. Features Easily distribute binaries across teams and private repositories. Get the latest r

Dec 13, 2022
Comments
  • Please make apm available via Homebrew

    Please make apm available via Homebrew

    Trying to install apm using the shell script leads to an error:

    'jq' could not be found, please install it!

    This could maybe be prevented using Homebrew, and also the install experience would be better.

    So: would it be possible to make apm available via Homebrew?

Related tags
Microservice to manager users with golang

User Service Microservice to manager users. Assumptions & Limitations This API a

Dec 27, 2021
triple-go (dubbo3) network protocol package

Triple-go is a golang network package that based on http2, used by Dubbo-go 3.0.

Dec 5, 2022
this package is for api response ^^

api-response this package is for api response ^^ Created by Wahidin Open for public Enjoy your day ^-^ how to install? go get github.com/WahidinAji/we

Dec 19, 2021
Go Package Manager (gopm) is a package manager and build tool for Go.

?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? In favor of Go Modules Proxy since Go 1.11, this pr

Dec 14, 2022
Arduino command line tool
Arduino command line tool

arduino-cli Arduino CLI is an all-in-one solution that provides builder, Boards/Library Manager, uploader, discovery and many other tools needed to us

Jan 7, 2023
Arduino pluggable discovery for serial ports

Arduino pluggable discovery for serial ports The quarto-discovery tool is a command line program that interacts via stdio. It accepts commands as plai

Oct 29, 2021
Controlling Arduino Uno Much Easier With Tinygouno

Controlling Arduino Uno Much Easier With Tinygouno Apa itu tinygo? Tinygouno saya buat menggunakan library tinygo dengan fungsi yang hampir mirip teta

Feb 9, 2022
Arduino Firmata client for golang

go-firmata A Golang wrapper for Firmata on Arduino Installation go get github.com/kraman/go-firmata Usage package main import ( "github.com/kraman/

Aug 11, 2022
Go library for hardware I/O control, in the programming style of Arduino

hwio Introduction hwio is a Go library for interfacing with hardware I/O, particularly on SoC-based boards such as BeagleBone Black, Raspberry Pi and

Dec 9, 2022
painless task queue manager for shell commands with an intuitive cli interface (execute shell commands in distributed cloud-native queue manager).

EXEQ DOCS STILL IN PROGRESS. Execute shell commands in queues via cli or http interface. Features Simple intuitive tiny cli app. Modular queue backend

Dec 14, 2022