<div align="center">
<img src=".github/assets/logo.png" alt="WovenSnake Cozy Logo" width="500">
<h1>๐งถ WovenSnake</h1>
</div>
[](https://crates.io/crates/wovensnake)
[](https://docs.rs/wovensnake)
[](https://github.com/jackby03/wovensnake/actions)
[](https://github.com/jackby03/wovensnake/blob/main/LICENSE)
[](https://ko-fi.com/jackby03)
> **"Dependencies, neatly woven."** ๐๐งถ
**WovenSnake** is a cozy, high-performance Python package manager built with **Rust**. It knits your dependencies together securely, keeping your environment warm and tidy.
---
## ๐ต Why WovenSnake?
Managing packages shouldn't be a tangle. WovenSnake keeps things organized:
* **โก Swift Knitting**: Parallel resolution and installation that finishes before your tea is ready.
* **๐ Secure Stitching**: Deterministic `wovenpkg.lock` ensures every install is identical.
* **๐ฆ Global Cache**: Shared storage in `~/.wovensnake/cache` to avoid downloading the same package twice.
* **๐งถ Self-Mending**: Automatically removes loose threads (unused packages) to keep your project clean.
* **๐ Zero-Config Home**: Creates virtual environments automatically, so your packages have a safe place to live.
---
## ๐ฟ Installation
### ๐ Automatic (Recommended)
**Linux / macOS**:
```bash
**Windows (PowerShell)**:
```powershell
### ๐ฆ From Source (Rustaceans)
```bash
cargo install --path .
```
---
## ๐ฎ How to Use
### 1. Start a New Pattern (`init`)
Prepares `wovenpkg.json` for your project.
```bash
woven init
```
### 2. Add a New Thread (`add`)
Adds a package from PyPI to your project and installs it immediately.
```bash
woven add requests
```
### 3. Knit Dependencies (`install`)
Reads your pattern, gathers materials, and weaves the environment.
```bash
woven install
```
### 4. Run in the Nest (`run`)
Execute any command within the context of your virtual environment.
```bash
woven run python main.py
```
### 5. Tidy Up (`remove`)
Gently removes a package and its unused threads.
```bash
woven remove flask
```
### 6. View the Tapestry (`list`)
Admire the packages currently woven into your project.
```bash
woven list
```
### 7. Fresh Start (`clean`)
Clears the virtual environment and local packages. Use `--all` to clear the global cache too.
```bash
woven clean
```
---
## ๐งธ Support the Nest
Building such a cozy tool takes care and patience. If WovenSnake brought you comfort, consider donating a warm coffee:
<a href='https://ko-fi.com/jackby03' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi2.png?v=3' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
*(Open Collective coming ssssoon...)*
---
## ๐ค Contributing to the Nest
We welcome all serpents! Whether you're fixing a bug or adding a new fang.
Check out **[CONTRIBUTING.md](CONTRIBUTING.md)** to get started.
## ๐ Licenssse
This project is licensed under the **MIT License**. Ssssee [LICENSE](LICENSE) for details.