https://github.com/v8v88v8v88/yama
Yama is a lightweight package manager that efficiently manages software installations and dependencies using C and Rust.
https://github.com/v8v88v8v88/yama
c rust rustc yama yum
Last synced: 5 months ago
JSON representation
Yama is a lightweight package manager that efficiently manages software installations and dependencies using C and Rust.
- Host: GitHub
- URL: https://github.com/v8v88v8v88/yama
- Owner: V8V88V8V88
- Created: 2024-09-28T06:47:31.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2024-11-24T16:51:23.000Z (5 months ago)
- Last Synced: 2024-11-24T17:28:58.749Z (5 months ago)
- Topics: c, rust, rustc, yama, yum
- Language: Rust
- Homepage:
- Size: 13.7 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# Yama: A Package Manager You Didn't Ask For, But Here It Is!
Yama is a lightweight package manager designed for performance and safety. Built using C for low-level operations and Rust for higher-level logic, it efficiently manages package installations, including dependency resolution.
## Features
- **Package Management:** Install, remove, and list packages effortlessly.
- **Download and Extraction:** Downloads packages from specified URLs and extracts them for use.
- **Dependency Resolution:** Automatically resolves and installs dependencies for the specified packages. (Working on it)## Project Structure
```mermaid
graph TD
A[yama] --> B[Cargo.lock]
A --> C[Cargo.toml]
A --> D[c_src]
A --> E[include]
A --> F[libfile_manager.a]
A --> G[Makefile]
A --> H[packages]
A --> I[Readme.md]
A --> J[src]D --> D1[file_manager.c]
D --> D2[file_manager.o]E --> E1[file_manager.h]
H --> H1[installed_packages.json]
J --> J1[lib.rs]
J --> J2[main.rs]style A fill:#f9f,stroke:#333,stroke-width:4px
style D fill:#bbf,stroke:#333,stroke-width:2px
style E fill:#bbf,stroke:#333,stroke-width:2px
style H fill:#bbf,stroke:#333,stroke-width:2px
style J fill:#bbf,stroke:#333,stroke-width:2px
```## Dependencies
Before running Yama, ensure you have the following dependencies installed:
- **Rust**: Install Rust using [rustup](https://rustup.rs/).
- **Cargo**: The Rust package manager comes with Rust installation.
- **C Compiler**: Make sure you have a C compiler (like `gcc` or `clang`) installed for building C components.
- **libzip**: Required for handling zip files. You can usually install it via your package manager:
- For Ubuntu/Debian:
```bash
sudo apt-get install libzip-dev
```
- For Fedora:
```bash
sudo dnf install libzip-devel
```## Installation
1. Clone the repository:
```bash
git clone https://github.com/V8V88V8V88/yama.git
cd yama
```2. Build the project:
```bash
cargo build --release
```## Usage
To install a package:
```bash
cargo run -- install
```To remove a package:
```bash
cargo run -- remove
```To list installed packages:
```bash
cargo run -- list
```## Fun Fact
The name "Yama" refers to a significant role player in Hinduism, symbolizing self-discipline and control. Just like Yama, this package manager aims to bring order and efficiency to your software management tasks.
## Another One
Yama is inspired by the now-deprecated YUM package manager and aims to bring a modern touch to package management. Enjoy managing your software packages with ease!