Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kingwingfly/downloader
A downloader by Tauri, Nextjs and actix.
https://github.com/kingwingfly/downloader
actix downloader nextjs rust tauri
Last synced: about 2 months ago
JSON representation
A downloader by Tauri, Nextjs and actix.
- Host: GitHub
- URL: https://github.com/kingwingfly/downloader
- Owner: kingwingfly
- Created: 2023-10-14T08:46:07.000Z (over 1 year ago)
- Default Branch: dev
- Last Pushed: 2024-04-25T14:47:57.000Z (9 months ago)
- Last Synced: 2024-04-25T15:55:47.580Z (9 months ago)
- Topics: actix, downloader, nextjs, rust, tauri
- Language: Rust
- Homepage:
- Size: 3.04 MB
- Stars: 49
- Watchers: 3
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[![LinkedIn][linkedin-shield]][linkedin-url]
downloader
A downloader in Rust, Tauri, nextjs and actix, easy to be extended.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
## About The Project
[![Product Name Screen Shot][product-screenshot]](https://example.com)
This is a downloader, I have implemented bilibili download now. This downloader is easy to secondary development, you just need impl `TaskExe` for the website you want to download.
The config or the cookies you store in this app will be encrypted by `rsa`, and the private key will be store using `keyring` in your system's key keeper (such as key-chain on macOS).
If you'd like to use a CLI tool, [this](https://github.com/kingwingfly/fav) is recommended, which can intervally pull your favorite sets to local storage.
### Important
This app uses ffmpeg to merge the video and audio, so you should add ffmpeg to env path or config it in config page. On macOS, you should config full path of `ffmpeg`, for binary on macOS can not be invoked directly by name.
![config ffmpeg](/screenshots/config_ffmpeg.png)
### Built With
* rust
* tauri
* [![Next][Next.js]][Next-url]
* [![React][React.js]][React-url]## Getting Started
**This app used `async trait` in rust, so you need a `nightly toolchain` installed.**
dev
```
npm i
cargo tauri dev
```
build yourself
```
npm i
cargo tauri build
```### Prerequisites
* npm
```sh
npm install npm@latest -g
```### Installation
1. Clone the repo
```sh
git clone https://github.com/kingwingfly/downloader.git
cd downloader
```
2. Install NPM packages
```sh
npm install
```
3. Install `tauri-cli` and `rust nightly toolchain`
```sh
cargo install tauri-cli
rustup install nightly
```
4. Build the bundle
```sh
cargo tauri build
```## Usage
New a Task
![new](/screenshots/newTask.png)
See the process
![list](/screenshots/taskList.png)
## Roadmap
- [x] Fix: tauri build goes wrong with nextjs' parellel intercepting route
- [ ] New: more website support
- [ ] New: remote downloadSee the [open issues](https://github.com/kingwingfly/downloader/issues) for a full list of proposed features (and known issues).
## Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request## License
Distributed under the MIT License. See `LICENSE.txt` for more information.
## Contact
Louis - [email protected]
Project Link: [https://github.com/kingwingfly/downloader](https://github.com/kingwingfly/downloader)
## Acknowledgments
* [rust](https://www.rust-lang.org)
* [tauri](https://tauri.app)
* [nextjs](https://nextjs.org)
* [react](https://react.dev)
* [tailwind css](https://tailwindcss.com)
* [actix](https://actix.rs/docs/actix)
* [snafu](https://docs.rs/snafu/latest/snafu/index.html)
* [reqwest](https://docs.rs/reqwest/latest/reqwest/index.html)
* [keyring](https://docs.rs/keyring/2.0.5/keyring/index.html)
* [tracing](https://docs.rs/tracing/latest/tracing/index.html)
* [tempdir](https://docs.rs/temp-dir/0.1.11/temp_dir/index.html)
* [scraper](https://docs.rs/scraper/latest/scraper/index.html)
* [rsa](https://docs.rs/rsa/0.9.3/rsa/index.html)[contributors-shield]: https://img.shields.io/github/contributors/kingwingfly/downloader.svg?style=for-the-badge
[contributors-url]: https://github.com/kingwingfly/downloader/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/kingwingfly/downloader.svg?style=for-the-badge
[forks-url]: https://github.com/kingwingfly/downloader/network/members
[stars-shield]: https://img.shields.io/github/stars/kingwingfly/downloader.svg?style=for-the-badge
[stars-url]: https://github.com/kingwingfly/downloader/stargazers
[issues-shield]: https://img.shields.io/github/issues/kingwingfly/downloader.svg?style=for-the-badge
[issues-url]: https://github.com/kingwingfly/downloader/issues
[license-shield]: https://img.shields.io/github/license/kingwingfly/downloader.svg?style=for-the-badge
[license-url]: https://github.com/kingwingfly/downloader/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/linkedin_username
[product-screenshot]: screenshots/home.png
[Next.js]: https://img.shields.io/badge/next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white
[Next-url]: https://nextjs.org/
[React.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB
[React-url]: https://reactjs.org/