Giter Site home page Giter Site logo

aria-download-manager's Introduction

logo

Aria Download Manager

A download manager designed for macOS and based on aria2.

中文 | English

Show

show_img

Requirements

  • rust >= 1.74.0
  • aria2

Build

  1. Clone the repo.
git clone https://github.com/iewnfod/aria-download-manager.git
  1. Run build script.
scripts/build.sh
  1. You can find .app and .dmg file in target dir.

Develop

Adm Tray

  1. Build a debug binary of download manager use cargo build.
  2. Move it into adm-tray's target dir.
  3. Enter adm-tray's dir and use cargo run to run your codes.

Aria Download Manager

  1. Open this application or adm-tray binary to make sure that aria2 has been started.
  2. Use cargo run to run your codes.

aria-download-manager's People

Contributors

iewnfod avatar lightumcc avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

itsharex

aria-download-manager's Issues

Encountered an error while building

./scripts/build.sh 报错,我错过了什么?
以下是控制台输出:

Updating submodule
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
Already up to date.
Creating app directory structure
Building and copying main binary
   Compiling aria-download-manager v0.1.0 (/Users/kzhang/Documents/workspaces/MyWorkspace/aria-download-manager)
error: future cannot be sent between threads safely
   --> src/main.rs:19:18
    |
19  |     tokio::spawn(server::listen());
    |                  ^^^^^^^^^^^^^^^^ future returned by `listen` is not `Send`
    |
    = help: within `impl futures::Future<Output = ()>`, the trait `std::marker::Send` is not implemented for `Rc<[Box<(dyn Fn() -> Pin<Box<(dyn futures::Future<Output = Result<Box<(dyn actix_web::data::DataFactory + 'static)>, ()>> + 'static)>> + 'static)>]>`
note: future is not `Send` as this value is used across an await
   --> src/server.rs:83:9
    |
75  | /     HttpServer::new(|| {
76  | |         App::new()
77  | |             .route("/api", web::post().to(index))
78  | |             .route("/state", web::get().to(state))
79  | |             .route("/focus", web::get().to(focus))
80  | |             .route("/quit", web::get().to(quit_handler))
81  | |     })
    | |______- has type `HttpServer<[closure@src/server.rs:75:18: 75:20], actix_web::App<actix_web::app_service::AppEntry>, actix_web::app_service::AppInit<actix_web::app_service::AppEntry, BoxBody>, BoxBody>` which is not `Send`
82  |       .bind("127.0.0.1:63318").unwrap()
83  |       .run().await
    |              ^^^^^ await occurs here, with the value maybe used later
84  |       .unwrap();
    |                - the value is later dropped here
note: required by a bound in `tokio::spawn`
   --> /Users/kzhang/.cargo/registry/src/mirrors.sjtug.sjtu.edu.cn-be2141875385cea5/tokio-1.35.1/src/task/spawn.rs:166:21
    |
164 |     pub fn spawn<F>(future: F) -> JoinHandle<F::Output>
    |            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
    |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
   --> src/main.rs:19:18
    |
19  |     tokio::spawn(server::listen());
    |                  ^^^^^^^^^^^^^^^^ future returned by `listen` is not `Send`
    |
    = help: within `impl futures::Future<Output = ()>`, the trait `std::marker::Send` is not implemented for `Rc<RefCell<std::vec::Vec<Box<(dyn actix_web::service::AppServiceFactory + 'static)>>>>`
note: future is not `Send` as this value is used across an await
   --> src/server.rs:83:9
    |
75  | /     HttpServer::new(|| {
76  | |         App::new()
77  | |             .route("/api", web::post().to(index))
78  | |             .route("/state", web::get().to(state))
79  | |             .route("/focus", web::get().to(focus))
80  | |             .route("/quit", web::get().to(quit_handler))
81  | |     })
    | |______- has type `HttpServer<[closure@src/server.rs:75:18: 75:20], actix_web::App<actix_web::app_service::AppEntry>, actix_web::app_service::AppInit<actix_web::app_service::AppEntry, BoxBody>, BoxBody>` which is not `Send`
82  |       .bind("127.0.0.1:63318").unwrap()
83  |       .run().await
    |              ^^^^^ await occurs here, with the value maybe used later
84  |       .unwrap();
    |                - the value is later dropped here
note: required by a bound in `tokio::spawn`
   --> /Users/kzhang/.cargo/registry/src/mirrors.sjtug.sjtu.edu.cn-be2141875385cea5/tokio-1.35.1/src/task/spawn.rs:166:21
    |
164 |     pub fn spawn<F>(future: F) -> JoinHandle<F::Output>
    |            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
    |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
   --> src/main.rs:19:18
    |
19  |     tokio::spawn(server::listen());
    |                  ^^^^^^^^^^^^^^^^ future returned by `listen` is not `Send`
    |
    = help: within `impl futures::Future<Output = ()>`, the trait `std::marker::Send` is not implemented for `Rc<RefCell<std::option::Option<actix_web::app_service::AppRoutingFactory>>>`
note: future is not `Send` as this value is used across an await
   --> src/server.rs:83:9
    |
75  | /     HttpServer::new(|| {
76  | |         App::new()
77  | |             .route("/api", web::post().to(index))
78  | |             .route("/state", web::get().to(state))
79  | |             .route("/focus", web::get().to(focus))
80  | |             .route("/quit", web::get().to(quit_handler))
81  | |     })
    | |______- has type `HttpServer<[closure@src/server.rs:75:18: 75:20], actix_web::App<actix_web::app_service::AppEntry>, actix_web::app_service::AppInit<actix_web::app_service::AppEntry, BoxBody>, BoxBody>` which is not `Send`
82  |       .bind("127.0.0.1:63318").unwrap()
83  |       .run().await
    |              ^^^^^ await occurs here, with the value maybe used later
84  |       .unwrap();
    |                - the value is later dropped here
note: required by a bound in `tokio::spawn`
   --> /Users/kzhang/.cargo/registry/src/mirrors.sjtug.sjtu.edu.cn-be2141875385cea5/tokio-1.35.1/src/task/spawn.rs:166:21
    |
164 |     pub fn spawn<F>(future: F) -> JoinHandle<F::Output>
    |            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
    |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
   --> src/main.rs:19:18
    |
19  |     tokio::spawn(server::listen());
    |                  ^^^^^^^^^^^^^^^^ future returned by `listen` is not `Send`
    |
    = help: within `impl futures::Future<Output = ()>`, the trait `std::marker::Send` is not implemented for `Rc<actix_service::boxed::BoxServiceFactory<(), ServiceRequest, ServiceResponse, actix_web::Error, ()>>`
note: future is not `Send` as this value is used across an await
   --> src/server.rs:83:9
    |
75  | /     HttpServer::new(|| {
76  | |         App::new()
77  | |             .route("/api", web::post().to(index))
78  | |             .route("/state", web::get().to(state))
79  | |             .route("/focus", web::get().to(focus))
80  | |             .route("/quit", web::get().to(quit_handler))
81  | |     })
    | |______- has type `HttpServer<[closure@src/server.rs:75:18: 75:20], actix_web::App<actix_web::app_service::AppEntry>, actix_web::app_service::AppInit<actix_web::app_service::AppEntry, BoxBody>, BoxBody>` which is not `Send`
82  |       .bind("127.0.0.1:63318").unwrap()
83  |       .run().await
    |              ^^^^^ await occurs here, with the value maybe used later
84  |       .unwrap();
    |                - the value is later dropped here
note: required by a bound in `tokio::spawn`
   --> /Users/kzhang/.cargo/registry/src/mirrors.sjtug.sjtu.edu.cn-be2141875385cea5/tokio-1.35.1/src/task/spawn.rs:166:21
    |
164 |     pub fn spawn<F>(future: F) -> JoinHandle<F::Output>
    |            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
    |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
   --> src/main.rs:19:18
    |
19  |     tokio::spawn(server::listen());
    |                  ^^^^^^^^^^^^^^^^ future returned by `listen` is not `Send`
    |
    = help: the trait `std::marker::Send` is not implemented for `(dyn MessageBody<Error = Box<(dyn StdError + 'static)>> + 'static)`
note: future is not `Send` as this value is used across an await
   --> src/server.rs:83:9
    |
75  | /     HttpServer::new(|| {
76  | |         App::new()
77  | |             .route("/api", web::post().to(index))
78  | |             .route("/state", web::get().to(state))
79  | |             .route("/focus", web::get().to(focus))
80  | |             .route("/quit", web::get().to(quit_handler))
81  | |     })
    | |______- has type `HttpServer<[closure@src/server.rs:75:18: 75:20], actix_web::App<actix_web::app_service::AppEntry>, actix_web::app_service::AppInit<actix_web::app_service::AppEntry, BoxBody>, BoxBody>` which is not `Send`
82  |       .bind("127.0.0.1:63318").unwrap()
83  |       .run().await
    |              ^^^^^ await occurs here, with the value maybe used later
84  |       .unwrap();
    |                - the value is later dropped here
note: required by a bound in `tokio::spawn`
   --> /Users/kzhang/.cargo/registry/src/mirrors.sjtug.sjtu.edu.cn-be2141875385cea5/tokio-1.35.1/src/task/spawn.rs:166:21
    |
164 |     pub fn spawn<F>(future: F) -> JoinHandle<F::Output>
    |            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
    |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
   --> src/main.rs:19:18
    |
19  |     tokio::spawn(server::listen());
    |                  ^^^^^^^^^^^^^^^^ future returned by `listen` is not `Send`
    |
    = help: the trait `std::marker::Send` is not implemented for `(dyn std::any::Any + 'static)`
note: future is not `Send` as this value is used across an await
   --> src/server.rs:83:9
    |
75  | /     HttpServer::new(|| {
76  | |         App::new()
77  | |             .route("/api", web::post().to(index))
78  | |             .route("/state", web::get().to(state))
79  | |             .route("/focus", web::get().to(focus))
80  | |             .route("/quit", web::get().to(quit_handler))
81  | |     })
    | |______- has type `HttpServer<[closure@src/server.rs:75:18: 75:20], actix_web::App<actix_web::app_service::AppEntry>, actix_web::app_service::AppInit<actix_web::app_service::AppEntry, BoxBody>, BoxBody>` which is not `Send`
82  |       .bind("127.0.0.1:63318").unwrap()
83  |       .run().await
    |              ^^^^^ await occurs here, with the value maybe used later
84  |       .unwrap();
    |                - the value is later dropped here
note: required by a bound in `tokio::spawn`
   --> /Users/kzhang/.cargo/registry/src/mirrors.sjtug.sjtu.edu.cn-be2141875385cea5/tokio-1.35.1/src/task/spawn.rs:166:21
    |
164 |     pub fn spawn<F>(future: F) -> JoinHandle<F::Output>
    |            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
    |                     ^^^^ required by this bound in `spawn`

error: could not compile `aria-download-manager` (bin "aria-download-manager") due to 6 previous errors

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.