podzol 0.2.1

A modpack package manager
# Podzol

[![Crates.io](https://img.shields.io/crates/v/podzol?style=flat-square&logo=rust)](https://crates.io/crates/podzol)
[![AUR](https://img.shields.io/aur/version/podzol?style=flat-square&logo=arch-linux)](https://aur.archlinux.org/packages/podzol)
[![License](https://img.shields.io/badge/license-Apache_2.0-blue.svg?style=flat-square)](LICENSE)
[![Website](https://img.shields.io/badge/website-podzol.morrone.dev-blue?style=flat-square)](https://podzol.morrone.dev)

A modern package manager for Minecraft modpacks that simplifies creation and
management through a clean TOML-based manifest format and direct integration
with the Modrinth API.

## Features

- Simple TOML-based manifest format
- Direct integration with Modrinth API
- Automatic version management
- Client/server-side awareness
- Support for multiple mod loaders (Fabric, Forge, Quilt, NeoForge)
- Built-in resource pack and shader management
- File override system for custom configurations

## Installation

### From Crates.io

```bash
cargo install podzol
```

### From AUR (Arch Linux)

```bash
paru -S podzol
```

## Quick Start

1. Create a new modpack:

```bash
podzol init --name "My Cool Pack" --version 1.21.1 --loader fabric
```

2. Add mods to your pack:

```bash
podzol add iris sodium modmenu
```

3. Export your modpack:

```bash
podzol export
```

## Configuration

Podzol uses a clean TOML format for modpack configuration:

```toml
[pack]
name = "Cool pack"
version = "0.1.0"
description = "A very cool minecraft modpack"

[enviroment]
minecraft = "1.21.1"
fabric = "0.16.10"

[mods]
iris = { version = "1.8.1+1.21.1-fabric", side = "client" }
sodium = { version = "mc1.21.1-0.6.5-fabric", side = "client" }
```

### Manifest Structure

- **Pack Information**: Basic metadata about your modpack
- **Environment**: Minecraft and mod loader versions
- **Mods**: Mod definitions with automatic version management
- **Resource Packs**: Optional resource pack configurations
- **Shaders**: Shader pack configurations
- **File Overrides**: Custom file management for client/server

## Commands

```bash
podzol init    # Create a new project
podzol add     # Add components to your modpack
podzol remove  # Remove components
podzol export  # Create a distributable package
```

## Roadmap

- Publishing capabilities
- Package extension support
- Additional mod platform integrations
- Advanced configuration options

## Comparison with Other Tools

| Feature              | Podzol      | Packwiz      | Manual Management |
| -------------------- | ----------- | ------------ | ----------------- |
| Configuration Format | Simple TOML | Complex TOML | N/A               |
| Version Management   | Automatic   | Manual       | Manual            |
| Modrinth Integration | Direct API  | Limited      | None              |
| Setup Complexity     | Minimal     | Complex      | None              |
| Learning Curve       | Gentle      | Steep        | N/A               |

## License

This project is licensed under the
[Apache-2.0 License](http://www.apache.org/licenses/LICENSE-2.0). For more
information, please see the [LICENSE](LICENSE) file.