Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rajput-hemant/jiosaavn-api-rs

🎵 An Unofficial wrapper for the Jio Saavn API written in Rust programming language 🦀.
https://github.com/rajput-hemant/jiosaavn-api-rs

jiosaavn jiosaavn-api jiosaavn-downloader music rest-api rust rust-api saavn-api vercel-rust vercel-rust-runtime vercel-serverless vercel-serverless-functions

Last synced: 2 days ago
JSON representation

🎵 An Unofficial wrapper for the Jio Saavn API written in Rust programming language 🦀.

Awesome Lists containing this project

README

        

![][ci] ![][views] ![][stars] ![][forks] ![][issues] ![][license] ![][code-size] ![][commit-activity]

# JioSaavn API

### A wrapper for JioSaavn API written in Rust programming language 🦀.

> [!NOTE]
> This project is for educational purposes only. The author of this project is not responsible for any misuse of this API. Use it at your own risk.

## 🔨 Local Development

- Rust should be installed on your system. If not, then install it from [here](https://www.rust-lang.org/tools/install).

```sh
git clone https://github.com/rajput-hemant/jiosaavn-api-rs
cd jiosaavn-api-rs
```

- Run the following command to build the project.

```sh
cargo build --release
```

- Run the following command to launch the api server.

```sh
cargo run --release
```

### Vercel Dev Server

- Vercel CLI should be installed on your system. If not, then install it from [here](https://vercel.com/download).

```sh
vc dev
```

---

## 🌐 Deploying your own instance

### Vercel (**_Recommended_**)

```sh
vc
```

**OR**

[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/rajput-hemant/jiosaavn-api-rs)

> [!NOTE]
> To ensure that the API consistently respects the provided language, make sure to set the [Function region](https://vercel.com/docs/concepts/functions/serverless-functions/regions) within Vercel to `Mumbai, India (South) - bom1`.

### Build and Run the Docker Image

> [!WARNING]
> You need to have [Docker](https://docs.docker.com/get-docker/) installed on your system.
> You might need to run the following commands with `sudo` depending on your system.

- Start Docker daemon (Skip if already running)

```
sudo dockerd
```

- Build the image

```
docker build -t jiosaavn .
```

- Run the image

```
docker run -p 8080:8080 jiosaavn
```

- Stop the container

```
docker ps
```

```
docker stop
```

---

### [Render](https://render.com/)

[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy)

- Login to your [Render](https://render.com/) account and create a new [Web Service](https://dashboard.render.com/select-repo?type=web).
- Fill in the details, choose `Runtime` as `Rust` and click on **Create Web Service**.

---

### [Shuttle.rs](https://shuttle.rs/)

- Install the [Shuttle CLI](https://github.com/shuttle-hq/shuttle/releases)

```
cargo install cargo-shuttle
```

- Make sure to change the `main.rs` file to the following:

```rust
// #[tokio::main]
#[shuttle_runtime::main]
// async fn main() {
async fn axum() -> shuttle_axum::ShuttleAxum {
// tracing_subscriber::fmt::init();

...

// let addr = "[::]:8080".parse().unwrap();

// tracing::debug!("🚀 Server listening on {}", addr);
// axum::Server::bind(&addr)
// .serve(app.into_make_service())
// .await
// .unwrap();

Ok(router.into())
}
```

```
cargo shuttle project start
cargo shuttle deploy --allow-dirty
```

---

### [Fly.io](https://fly.io/)

- Install the [Fly CLI](https://fly.io/docs/hands-on/install-flyctl)

```
curl -L https://fly.io/install.sh | sh
```

- A `fly.toml` file will be automatically generated by `fly launch` command which will ask a few questions to set everything up.

```
fly launch --name jiosaavn
```

- Deploy the app

```
fly deploy
```

## 📜 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 🦾 Contributors:


[views]: https://komarev.com/ghpvc/?username=jiosaavn-api-rs&label=view%20counter&color=red&style=flat
[code-size]: https://img.shields.io/github/languages/code-size/rajput-hemant/jiosaavn-api-rs
[issues]: https://img.shields.io/github/issues-raw/rajput-hemant/jiosaavn-api-rs
[license]: https://img.shields.io/github/license/rajput-hemant/jiosaavn-api-rs
[commit-activity]: https://img.shields.io/github/commit-activity/w/rajput-hemant/jiosaavn-api-rs
[forks]: https://img.shields.io/github/forks/rajput-hemant/jiosaavn-api-rs?style=flat
[stars]: https://img.shields.io/github/stars/rajput-hemant/jiosaavn-api-rs
[ci]: https://github.com/rajput-hemant/jiosaavn-api-rs/actions/workflows/ci.yml/badge.svg