All Projects → andrewchambers → Hermes

andrewchambers / Hermes

Licence: mit
Hermes software environment manager

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Hermes

minepkg
Manage Minecraft mods with ease.
Stars: ✭ 38 (-85.38%)
Mutual labels:  package-manager
RMEBuilder
[DEPRECATED] Package Manager (like Aptitude, for Debian) (and project builder) for RPGMaker VXAce
Stars: ✭ 15 (-94.23%)
Mutual labels:  package-manager
ansible-role-pip
Ansible Role - Pip (for Python)
Stars: ✭ 147 (-43.46%)
Mutual labels:  package-manager
npm-yarn-benchmark
Bash script for comparing NPM and Yarn performance
Stars: ✭ 42 (-83.85%)
Mutual labels:  package-manager
scoop-viewer
A gui client for scoop.
Stars: ✭ 76 (-70.77%)
Mutual labels:  package-manager
gosearch
awesome-go package explorer
Stars: ✭ 30 (-88.46%)
Mutual labels:  package-manager
ansible-apt
Ansible role to manage packages and up(date|grade)s in Debian-like systems
Stars: ✭ 21 (-91.92%)
Mutual labels:  package-manager
k
kiss pkg man written in c
Stars: ✭ 51 (-80.38%)
Mutual labels:  package-manager
hackage-ui
Follow us: https://twitter.com/HaskellSpot Support the project: https://ko-fi.com/visortelle
Stars: ✭ 84 (-67.69%)
Mutual labels:  package-manager
ck-env
CK repository with components and automation actions to enable portable workflows across diverse platforms including Linux, Windows, MacOS and Android. It includes software detection plugins and meta packages (code, data sets, models, scripts, etc) with the possibility of multiple versions to co-exist in a user or system environment:
Stars: ✭ 67 (-74.23%)
Mutual labels:  package-manager
cpm
🌵 A wrapper for package managers to make them consistent for those of us who are lazy.
Stars: ✭ 52 (-80%)
Mutual labels:  package-manager
quelpa-use-package
Emacs quelpa handler for use-package
Stars: ✭ 108 (-58.46%)
Mutual labels:  package-manager
vpm
ViM Plugin Manager (like apt, npm, pacman, etc ... )
Stars: ✭ 13 (-95%)
Mutual labels:  package-manager
paket
A simple and fast package manager for the Fish shell written in Rust. 🐠
Stars: ✭ 31 (-88.08%)
Mutual labels:  package-manager
appcenter
🚀 App Center for Liri OS
Stars: ✭ 26 (-90%)
Mutual labels:  package-manager
melody
📦 Fast and reliable dependency management for Go ♫
Stars: ✭ 79 (-69.62%)
Mutual labels:  package-manager
flatn
flat node dependencies
Stars: ✭ 18 (-93.08%)
Mutual labels:  package-manager
basalt
The rock-solid Bash package manager
Stars: ✭ 16 (-93.85%)
Mutual labels:  package-manager
bazel-packages
[WIP] Collection of Bazel packages
Stars: ✭ 14 (-94.62%)
Mutual labels:  package-manager
xrepo-cmake
CMake wrapper for Xrepo C and C++ package manager
Stars: ✭ 17 (-93.46%)
Mutual labels:  package-manager

Hermes

Hermes is a software environment manager used for installing and uninstalling collections of software. Hermes may be considered similar to a package manager, but certainly works quite differently from traditional tools in this space.

Hermes helps with tasks similar to other tools like homebrew or perhaps docker, but in a totally different way. For those who know Nix and Guix, things will be familiar, but there are also some key differences.

So what does it do?

When using Hermes your entire software stack is defined and saved in a set of package definitions along side the rest of your source code. This means Hermes gives you strict reproducible control over your entire software stack. With a single command you can reliably (and quickly) rebuild a development environment, deployment, docker image or vm image entirely from source.

With Hermes you can also share, review, clone, fork, patch and pin your whole software stack the same way you do with your existing source code.

Hermes also provides some nifty features:

  • A decentralized packaging model.
  • Easy installation of software over URLS.
  • Easy transfer of software environments between computers.
  • Avoidance of version conflicts with already installed software.
  • Installing software from source code.
  • Strong support for software auditability.
  • Transparent build caching.
  • Remote package builds.
  • Remote deployments.
  • Atomic upgrades and rollback.
  • and more...

What does using Hermes look like?

Does Hermes replace my language package manager like npm,jpm,cargo,pip... ?

No.

Hermes can be used to manage the system level dependencies during software development while still using these tools normally. For example you could install a specific C compiler and libcurl with hermes, but just invoke npm as normal for your javascript project.

During deployment of your software you can invoke these tools from within package definitions to build your software in a well defined sandbox. These packages can then be deployed to remote machines using 'hermes cp'.

Does Hermes replace my system package manager?

Maybe.

Hermes packages are totally separate from your system packages. When you enter a hermes environment, your PATH and other environment variables are set to paths within the hermes package store.

Hermes does not care what other package managers you use, and does not install packages in the traditional /bin path so will not conflict with them.

How can you help?

  • Give hermes and hpkgs a star on github.
  • Donate to the project to keep it sustainable and show interest.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].