Parm: cross-platorm, general purpose Package Manager

Posted by houndz-@reddit | linux | View on Reddit | 13 comments

Hey all, I've just released v0.1.0 of my first open-source CLI tool after 2 months!

Parm is a general-purpose, cross-platform (yes, really) package manager similar to the likes of Homebrew. It's meant to have virtually no dependencies, light installs, and no root access all within a single binary.

Link: https://github.com/yhoundz/parm

How it works:

Parm uses the GitHub REST API to download and install GitHub releases, and it will extract binaries and adds them to PATH for you. Of course, you can also remove and update packages seamlesly. This means you can install any application or program hosted on GitHub.

To keep track of installed packages, Parm writes a manifest file to every installed package that stores metadata about it, which allows it to check for updates or divulge package information without having to retrieve the package again upstream.

Why Parm?

I initially created this because my default package manager, apt, has a bunch of outdated packages, so if I wanted an updated version, I'd have to use some other package manager or another install method. I wanted to centralize all the applications I install to make it easier to keep track of them. If you're content with your system's package manager (or homebrew), then this probably isn't for you.

Parm also gets upstream releases right when the maintainer updates the GitHub repository (no more waiting on 3rd-party package maintainers). That also means that I don't have to maintain a central registry of packages, as they're all available on GitHub. You can read more about Parm in the project's README and/or documentation.

Features:

Tech Stack/Libaries Used:

I'm relatively new to Go and Parm is still in an alpha state, so any feedback, contributions, thoughts, or feature ideas would be much appreciated!

Link (again): https://github.com/yhoundz/parm