/hua

A simple package manager mixing traditional and next-gen concepts

Primary LanguageRust

Contributors Forks Stargazers Issues MIT License Apache-2.0 License LinkedIn


Logo

Hua - Package Manager

A simple package manager mixing traditional and next-gen concepts
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Screenshot

There are already many great package managers out there; however, most of them install all packages into the global directories, which makes it hard to roll back to a previous state if something went wrong. Therefor usually you have to manually chroot into youre installation and resolve the issues or let youre filesystem take snapshots so that you can rollback to a previous state. In my opinion this is not the task of your filesystem but of your package manager. Next generation package managers like nix prevent those failures by the concept of generations. Whenever you install, remove or modify a package, a new generations is created, so that you can switch to another generation at any moment. Hua borrows this feature, but retains FHS compatible, so that you do not have to patch elf files and downloaded applications run just out of the box if you have all the necessary dependencies installed.

(back to top)

Built With

  • Rust
  • Roc
  • And many other great dependencies you can find in the Cargo.toml

(back to top)

Getting Started

Development

We use the Nix package manager to create a reproducible development environment. So to start developing, make sure you installed the Nix package manager and that the nix flakes feature is enabled.

Then just run:

nix develop

Installation

Currently there is no way to install hua, but there will be a installation for Nix users soon.

(back to top)

Usage

Add a package

hua add <name>

Remove a package

hua remove <name>

Generations

List

hua generations list

Remove

hua generations remove <id>

Store

Collect unsued packages and delete them

hua store collect-garbage

(back to top)

Roadmap

  • [] Improve test coverage
  • [] Improve error messages
  • [] Create a package format with Roc
  • [] File permissions

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Dual licensed under either MIT or Apache-2.0 at your choice

(back to top)

Contact

Thomas Wehmöller - @MordragT

Project Link: https://github.com/MordragT/hua

(back to top)

Acknowledgments

These are some great projects that helped me create hua

(back to top)