<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.
* **๐ Truly Cross-Platform**: Native binaries for macOS (arm64 & x86_64), Linux, and Windows โ no Rosetta 2 penalty on Apple Silicon.
* **๐งถ 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.
---
## ๐ป Platform Support
| **macOS** | Apple Silicon (arm64) | โ
Supported |
| **macOS** | Intel (x86_64) | โ
Supported |
| **Linux** | x86_64 | โ
Supported |
| **Linux** | aarch64 | โ
Supported |
| **Windows** | x86_64 | โ
Supported |
---
## ๐ฟ Installation
### ๐ Automatic (Recommended)
**macOS / Linux**:
```bash
The installer auto-detects your architecture (arm64 or x86_64), downloads the right binary, and optionally adds `woven` to your PATH. Pass `--yes` to skip all prompts.
**Windows (PowerShell)**:
```powershell
### ๐ฆ Pre-built Binaries
Download the binary for your platform from the [latest release](https://github.com/jackby03/wovensnake/releases/latest):
| macOS (Apple Silicon) | `woven-macos-arm64` |
| macOS (Intel) | `woven-macos-amd64` |
| Linux (x86_64) | `woven-linux-amd64` |
| Windows (x86_64) | `woven-windows-amd64.exe` |
### ๐ฆ From Source (Rustaceans)
```bash
cargo install --path .
```
### โป๏ธ Updating
Re-run the installer โ it will overwrite the existing binary:
```bash
### ๐๏ธ Uninstalling
```bash
woven self-uninstall
```
This removes the binary, the global cache (`~/.wovensnake`), and cleans the `PATH` entry from your shell rc files. Add `--yes` to skip the confirmation prompt.
---
## ๐ฎ 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 supporting:
<p align="center">
<a href="https://ko-fi.com/jackby03"><img src="https://img.shields.io/badge/Ko--fi-Support_on_Ko--fi-FF5E5B?style=for-the-badge&logo=ko-fi&logoColor=white" alt="Ko-fi" /></a>
<a href="https://publishers.basicattentiontoken.org/en/c/jackby03"><img src="https://img.shields.io/badge/BAT-Brave_Rewards-FB542B?style=for-the-badge&logo=brave&logoColor=white" alt="BAT" /></a>
</p>
---
## ๐ค Contributing to the Nest
We follow a **Trunk-Based Development** workflow with strict CI verification. Check out **[CONTRIBUTING.md](CONTRIBUTING.md)** to get started.
## ๐ Licenssse
This project is licensed under the **MIT License**. Ssssee [LICENSE](LICENSE) for details.