opensass 0.0.1

๐Ÿงฉ A CLI to interact with the OpenSASS ecosystem.
Documentation
<div align="center">

# ๐Ÿงฉ OpenSASS

[![Crates.io](https://img.shields.io/crates/v/opensass.svg)](https://crates.io/crates/opensass)
[![docs](https://docs.rs/opensass/badge.svg)](https://docs.rs/opensass/)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

| ๐Ÿง Linux `(Recommended)` |        ๐ŸชŸ Windows        |
| :----------------------: | :----------------------: |
| `cargo install opensass` | `cargo install opensass` |
| [Download Executable File]https://github.com/opensass/cli/releases/download/v0.0.1/os | [Download `.exe` File]https://github.com/opensass/cli/releases/download/v0.0.1/os.exe |
|         `os -h`          |         `os -h`          |

</div>

> ๐Ÿงฉ **OpenSASS**: A CLI tool for downloading reusable OpenSASS components from crates.io and integrating them into your WASM frontend projects.

## ๐Ÿ“– Table of Contents

- [Installation]#-installation
- [What is OpenSASS?]#-what-is-opensass
- [Features]#-features
- [Usage]#-usage
- [Examples]#-examples
- [Roadmap]#-roadmap
- [Contributing]#-contributing
- [License]#-license

## ๐Ÿš€ Installation

To install the CLI:

```sh
cargo install opensass
```

Or build from source:

```sh
git clone https://github.com/opensass/cli.git
cd cli
cargo build --release
```

## โ“ What is OpenSASS?

**OpenSASS** is a modular CLI tool that enables you to:

- Download reusable Rust/WASM components published to `crates.io`.
- Automatically resolve and import component-specific dependencies and features.
- Copy relevant source files directly into your `src/` directory.
- Seamlessly integrate with frontend frameworks like `Yew`, `Leptos`, and `Dioxus`.

It simplifies the process of reusing frontend Rust code across projects.

## โœจ Features

- ๐Ÿงฉ Add OpenSASS component-based crates with a single command.
- โš™ Automatically updates `Cargo.toml` with proper features.
- ๐Ÿ” Copies only the `src/` files related to the specified feature.

## ๐Ÿ’ก Usage

### Add an OpenSASS component to your project

```sh
os add i18nrs yew
```

This will:

- Download the `i18nrs` crate.
- Extract files only related to the `yew` feature.
- Copy `src/` files into your project.
- Update your `Cargo.toml` dependencies and feature flags.

## ๐Ÿงช Examples

### Using with Yew

```sh
os add radio-rs yew
```

### Using with Leptos

```sh
os add radio-rs lep
```

### Using with Dioxus

```sh
os add radio-rs dio
```

## ๐Ÿ“ฆ Roadmap

- [x] Add components by feature.
- [x] Auto-update `lib.rs` & `Cargo.toml`.
- [ ] Initialize custom WASM templates.
- [ ] TUI support.
- [ ] VS Code extension?

## ๐Ÿค Contributing

Contributions are welcome! Please:

1. Fork this repo
1. Create your branch (`git checkout -b feature/my-feature`)
1. Commit your changes (`git commit -am 'Add new feature'`)
1. Push and open a PR

## ๐Ÿ“„ License

Licensed under the [MIT License](LICENSE).