diff --git a/Cargo.lock b/Cargo.lock index 1b09cef..2ffbf3d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -332,15 +332,6 @@ dependencies = [ "itertools", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.20" @@ -1115,7 +1106,6 @@ dependencies = [ "ahash", "clap", "criterion", - "crossbeam-channel", "hmac", "indicatif", "num_cpus", diff --git a/Cargo.toml b/Cargo.toml index cba76a9..0abec3b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,6 @@ zip = "2.1.6" pbkdf2 = "0.12.2" # parallel version did not help the performance hmac = { version = "0.12.1", features = ["reset"] } sha1 = "0.10.6" -crossbeam-channel = "0.5.13" clap = { version = "4.5.13", features = ["cargo"] } indicatif = "0.17.8" thiserror = "1.0.63" diff --git a/src/password_finder.rs b/src/password_finder.rs index 5f822e2..be1e684 100644 --- a/src/password_finder.rs +++ b/src/password_finder.rs @@ -4,10 +4,10 @@ use crate::password_reader::password_reader_count; use crate::password_worker::password_checker; use crate::zip_utils::validate_zip; use crate::{GenPasswords, PasswordFile}; -use crossbeam_channel::{Receiver, Sender}; use indicatif::{ProgressBar, ProgressDrawTarget, ProgressStyle}; use std::path::{Path, PathBuf}; use std::sync::atomic::{AtomicBool, Ordering}; +use std::sync::mpsc::{sync_channel, Receiver, SyncSender}; use std::sync::Arc; #[derive(Clone, Debug)] @@ -49,8 +49,8 @@ pub fn password_finder( .println("Archive encrypted with ZipCrypto - expect a much faster throughput"), } - let (send_found_password, receive_found_password): (Sender, Receiver) = - crossbeam_channel::bounded(1); + let (send_found_password, receive_found_password): (SyncSender, Receiver) = + sync_channel(1); // stop signals to shut down threads let stop_workers_signal = Arc::new(AtomicBool::new(false)); diff --git a/src/password_worker.rs b/src/password_worker.rs index df139ac..0c0d15c 100644 --- a/src/password_worker.rs +++ b/src/password_worker.rs @@ -2,13 +2,13 @@ use crate::password_finder::Strategy; use crate::password_gen::password_generator_iter; use crate::password_reader::password_dictionary_reader_iter; use crate::zip_utils::AesInfo; -use crossbeam_channel::Sender; use hmac::Hmac; use indicatif::ProgressBar; use sha1::Sha1; use std::io::{BufReader, Cursor, Read, Seek}; use std::path::Path; use std::sync::atomic::{AtomicBool, Ordering}; +use std::sync::mpsc::SyncSender; use std::sync::Arc; use std::thread::JoinHandle; use std::{fs, thread}; @@ -47,7 +47,7 @@ pub fn password_checker( file_number: usize, aes_info: Option, strategy: Strategy, - send_password_found: Sender, + send_password_found: SyncSender, stop_signal: Arc, progress_bar: ProgressBar, ) -> JoinHandle<()> {