๐Ÿ–ฅ A feature rich terminal UI file transfer and explorer with support for SCP/SFTP/FTP/S3

Overview

termscp

~ A feature rich terminal file transfer ~

Website ยท Installation ยท User manual

English   Deutsch   Espaรฑol   Franรงais   Italiano   ็ฎ€ไฝ“ไธญๆ–‡

Developed by @veeso

Current version: 0.7.0 (12/10/2021)

License-MIT Repo stars Downloads counter Latest version Buy me a coffee

Linux CI MacOS CI Windows CI FreeBSD CI Coveralls Docs


About termscp ๐Ÿ–ฅ

Termscp is a feature rich terminal file transfer and explorer, with support for SCP/SFTP/FTP/S3. So basically is a terminal utility with an TUI to connect to a remote server to retrieve and upload files and to interact with the local file system. It is Linux, MacOS, FreeBSD and Windows compatible.

Explorer


Features ๐ŸŽ

  • ๐Ÿ“ Different communication protocols
    • SFTP
    • SCP
    • FTP and FTPS
    • Aws S3
  • ๐Ÿ–ฅ Explore and operate on the remote and on the local machine file system with a handy UI
    • Create, remove, rename, search, view and edit files
  • โญ Connect to your favourite hosts through built-in bookmarks and recent connections
  • ๐Ÿ“ View and edit files with your favourite applications
  • ๐Ÿ’ SFTP/SCP authentication with SSH keys and username/password
  • ๐Ÿง Compatible with Windows, Linux, FreeBSD and MacOS
  • ๐ŸŽจ Make it yours!
    • Themes
    • Custom file explorer format
    • Customizable text editor
    • Customizable file sorting
    • and many other parameters...
  • ๐Ÿ“ซ Get notified via Desktop Notifications when a large file has been transferred
  • ๐Ÿ” Save your password in your operating system key vault
  • ๐Ÿฆ€ Rust-powered
  • ๐Ÿ‘€ Developed keeping an eye on performance
  • ๐Ÿฆ„ Frequent awesome updates

Get started ๐Ÿš€

If you're considering to install termscp I want to thank you ๐Ÿ’œ ! I hope you will enjoy termscp!
If you want to contribute to this project, don't forget to check out our contribute guide.

If you are a Linux, a FreeBSD or a MacOS user this simple shell script will install termscp on your system with a single command:

curl --proto '=https' --tlsv1.2 -sSLf "https://git.io/JBhDb" | sh

while if you're a Windows user, you can install termscp with Chocolatey:

choco install termscp

For more information or other platforms, please visit veeso.github.io to view all installation methods.

โš ๏ธ If you're looking on how to update termscp just run termscp from CLI with: (sudo) termscp --update โš ๏ธ

Requirements โ—

  • Linux users:
    • libssh
    • libdbus-1
    • pkg-config
  • FreeBSD users:
    • libssh
    • dbus
    • pkgconf

Optional Requirements โœ”๏ธ

These requirements are not forced required to run termscp, but to enjoy all of its features

  • Linux/FreeBSD users:
    • To open files via V (at least one of these)
      • xdg-open
      • gio
      • gnome-open
      • kde-open
  • Linux users:
  • WSL users
    • To open files via V (at least one of these)

Support me โ˜•

If you like termscp and you'd love to see the project to grow and to improve, please consider a little donation to support me on Buy me a coffee ๐Ÿฅณ

Buy-me-a-coffee

or, if you prefer, you can also donate on PayPal:

Donate


User manual and Documentation ๐Ÿ“š

The user manual can be found on the termscp's website or on Github.

The developer documentation can be found on Rust Docs at https://docs.rs/termscp


Known issues ๐Ÿงป

  • NoSuchFileOrDirectory on connect (WSL1): I know about this issue and it's a glitch of WSL I guess. Don't worry about it, just move the termscp executable into another PATH location, such as /usr/bin, or install it through the appropriate package format (e.g. deb).

Upcoming Features ๐Ÿงช

Major termscp releases will now be seasonal, so expect 4 major updates during the year.

Planned for โ„๏ธ Winter update 2021 โ›„ :

  • File system watcher ๐Ÿ”ญ : The feature consists in the possibility to track some files in order to automatically sync them with remote host. For the implementation notify will be used.
  • Translations ๐ŸŒ : The feature consists in the possibility for the user to install the language pack for the language he prefers in order to replace the default English interface. The following language will be provided along to English:
    • ๐Ÿ‡จ๐Ÿ‡ณ Chinese
    • ๐Ÿ‡ซ๐Ÿ‡ท French
    • ๐Ÿ‡ฉ๐Ÿ‡ช German
    • ๐Ÿ‡ฎ๐Ÿ‡น Italian
    • ๐Ÿ‡ณ๐Ÿ‡ฑ Dutch
    • ๐Ÿ‡ช๐Ÿ‡ธ Spanish

Planned for ๐Ÿ“ Spring update 2022 ๐ŸŒน :

  • SMB Support ๐ŸŽ‰ : This will require a long time to be implemented, since I'm currently working on a Rust native SMB library, since I don't want to add new C-bindings. Fear the ๐Ÿฆš
  • Configuration profile for bookmarks ๐Ÿ“š : Basically this feature adds the possibility to have a specific setup for a certain host, instead of having only one global configuration. (Maybe will be postponed to spring 2022).

Along to new features, termscp developments is now focused on UX and performance improvements, so if you have any suggestion, feel free to open an issue.


Contributing and issues ๐Ÿค๐Ÿป

Contributions, bug reports, new features and questions are welcome! ๐Ÿ˜‰ If you have any question or concern, or you want to suggest a new feature, or you want just want to improve termscp, feel free to open an issue or a PR.

An appreciated contribution would be a translation of the user manual and readme in other languages

Please follow our contributing guidelines


Changelog โณ

View termscp's changelog HERE


Powered by ๐Ÿ’ช

termscp is powered by these awesome projects:


Gallery ๐ŸŽฌ

Termscp Home

Auth

Bookmarks

Bookmarks

Setup

Setup

Text editor

TextEditor


License ๐Ÿ“ƒ

termscp is licensed under the MIT license.

You can read the entire license HERE

Comments
  • [BUG] Could not start activity manager: Could not access file: No such file or directory (os error 2)

    [BUG] Could not start activity manager: Could not access file: No such file or directory (os error 2)

    Hey!

    Thanks for the quick response on my other ticket -- yay install worked fine after you updated the checksum.

    I've got it installed now, but I'm getting an error on launch... regardless of what arguments I include, I always get Could not start activity manager: Could not access file: No such file or directory (os error 2)

    I'm running Manjaro 21, not pure Arch, but that normally doesn't make a difference.

    bug 
    opened by tedtms 13
  • Decouple file transfers into a separate crate

    Decouple file transfers into a separate crate

    TermSCP's generic file transfer implementation is extremely well developed and one of a kind! AFAIK, there isn't a single crate dedicated to supporting a generic impl of multiple file transfer protocols over the network. Decoupling this would hopefully establish a general ground in the Rust ecosystem and encourage the community to implement their own protocols.

    I'm sure this isn't a top priority, but nevertheless, it is definitely something that should be considered.

    question enhancement 
    opened by ok-nick 8
  • extremely slow file transfer

    extremely slow file transfer

    Description

    i'm facing a very slow file transfer, i don't know if i'm missing anything, but scp and my dart implementation using libssh manages to finish the transfer much faster.

    Steps to reproduce

    fn main() {
        //configure log
        CombinedLogger::init(
            vec![
                TermLogger::new(LevelFilter::Debug, Config::default(), TerminalMode::Mixed, ColorChoice::Auto),           
            ]
        ).unwrap();
        //configure host
        let localhost = Localhost::new(PathBuf::from(r"C:\MyRustProjects\fsbackup_engine")).unwrap();
    
        //connection setup
        let config = ProtocolParams::Generic(GenericProtocolParams {
            address: "192.168.133.13".to_string(),
            port: 22,
            username: Some(String::from("isaque.neves")),
            password: Some(String::from("Ins257257")),
        });
    
        let mut activity = FileTransferActivity::new(localhost, FileTransferProtocol::Scp, config);
        activity.connect();
    
        //let file_to_download = FsEntry::File(FsFile::from_str("/var/www/.profile")); //this work
        let dir_to_download = FsEntry::Directory(FsDirectory::from_str("/var/www/html/Alex"));
        let dest_dir_path = r"C:\MyRustProjects\fsbackup_engine\download";
        let destiny= PathBuf::from(dest_dir_path);
        //create directory if it doesn't exist
        std::fs::create_dir_all(dest_dir_path).expect(format!("Failed to create directory: {}", dest_dir_path).as_str());
    
        match activity.filetransfer_recv(TransferPayload::Any(dir_to_download), &destiny, None) {
            Ok(result) => {
                println!("result: {:?}", result);
            }
            Err(e) => {
                println!("error: {}", e);//eprintln!()
                process::exit(0);//1
            }
        }
    }
    

    Expected behaviour

    the expected behavior should be copying the directory without any errors

    Environment

    • OS: Linux Debian 10 to Windows 11
    • Architecture [x86_64]
    • Rust version rustc 1.56.1 (59eed8a2a 2021-11-01)
    • termscp version last
    • Protocol used SCP
    • Remote server version and name Linux Debian 10

    Additional information

    With SCP: 14 seconds

    image

    With rust + lib ssh2: 132.175213 seconds

    image image

    image

    in dart + libssh

    PS C:\MyDartProjects\fsbackup\packages\libssh_binding> .\example\main.exe 
    scpDownloadDirectory: total size: 48958110 in bytes | 46.69009208679199 megabytes of directory /var/www/html/portalPmro
    scpDownloadDirectory: end of directories
    scpDownloadDirectory: total size: 48958110 | copied: 48958110
    
    0:00:10.203692
    

    image

    bug wontfix sorcery 
    opened by insinfo 7
  • [Feature Request] Keyring-rs to store secrets

    [Feature Request] Keyring-rs to store secrets

    Premise

    TermSCP uses an AES 256 byte key to encrypt secrets/passwords in bookmarks. At the moment the AES key is stored in one of the following paths, based on the user's operating system:

    • Linux: /home/alice/.config/termscp/.ssh/
    • MacOS: /Users/Alice/Library/Application Support/termscp/.ssh/
    • Windows: C:\Users\Alice\AppData\Roaming\termscp\.ssh\

    This method is quite safe, since anyway, keys are located in a path which is accessible only by the current user.

    The Keyring solution

    The optimal solution to store the secret would probably be to use keyring-rs which allows the user to store the termscp secret in the operating system vault. The solution is actually quite simple, since just in a few lines of code, this crates provides a way to do so:

    extern crate keyring;
    extern crate whoami; // whoami is already in termscp, so only keyring must be added
    
    use keyring::Keyring;
    
    let service: String = String::from("termscp");
    let secret: String = generate_key(); // Generates a 256 Bytes random key
    let username: String = whoami::username();
    let storage: Keyring = Keyring::new(service.as_str(), username.as_str());
    // Save password into the storage
    if let Err(err) = storage.set_password(secret.as_str()) {
        // Handle error...
    }
    // ...
    // Retrieve password from the storage to decrypt
    let secret: String = match storage.get_password() {
        Ok(s) => s,
        Err(e) => { /* Handle error */ },
    };
    

    Unfortunately, if on one side this makes safer to handle secrets, at the same time adds a lot of issues.

    The BSD compatibility break

    Keyring-rs just doesn't support BSD, which would break the compatibility with it. So it must be a feature for BSD

    The D-BUS dilemma

    On Linux keyring-rs uses D-BUS and requires a service which provides org.freedesktop.secrets. And there are three issues with that.

    1. Some DE doesn't provide any org.freedesktop.secrets service. As a Manjaro/KDE user, I wasn't able to find any service running which provides it, making me unable to use it. I haven't checked how many DE actually supports it, GNOME supports it for sure.
    2. the D-BUS low-level dependency: unfortunately, building keyring-rs on Linux, requires to have the libdbus installed, which is totally MEH. There is no problem if you use a real GNU/Linux operating systems, but what about for example WSL? My WSL doesn't have libdbus installed, since it is not supported, and I haven't any intention to install it. In addition personally, I'm not a huge fan of forcing users to install C libraries to make an application to work. Personally when I see a crate which requires a particular C library to be installed, I give up installing it, not because it's complicated, but just because it's annoying.
    3. The application name is bounded torust-keyring. I'm not 100% sure this means the only service you can use is actually rust-keyring, but if it so, for me it's totally a big no no.

    Implementation

    After the analysis of the issues introduced by the crate, I haven't given up in implementing this feature, indeed I've actually decided I will implement it in 0.3.1/0.3.2.

    The implementation consists in adding a new trait Keystorage which provides these methods:

    • get_secret() -> &str
    • set_secret(secret: &str) -> Result
    • supported() -> bool (static)

    and I will implement two providers: KeyringStorage which uses keyring-rs and FileStorage which uses the current implementation.

    The keyring-rs crate will be available on Windows and MacOS only, while on Linux, at least until libdbus will be required, I won't be supported. I know it's a pity, considering that probably a big slice of the audience of termscp are Linux/WSL users, but this would introduce many compatibility issues and would remove the coverage for many users (wsl users in particular).

    new feature 
    opened by veeso 7
  • [BUG] - 0.9.0 doesn't run on Ubuntu 22.04

    [BUG] - 0.9.0 doesn't run on Ubuntu 22.04

    Description

    running termscp, errors with: "termscp: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory"

    Steps to reproduce

    run termscp

    Expected behaviour

    termscp should start

    Environment

    • OS: Ubuntu 22.10
    • Architecture x86_64
    • Rust version: N/A
    • termscp 0.9.0 (installed via curl --proto '=https' --tlsv1.2 -sSLf "https://git.io/JBhDb" | sh)
    • Protocol used: N/A
    • Remote server version and name: N/A

    Log

    ย curl --proto '=https' --tlsv1.2 -sSLf "https:
    //git.io/JBhDb" | sh
    
      Termscp configuration
    > Platform:      linux
    > Arch:          x86_64
    
    ? Install termscp 0.9.0? [y/N] y
    > Detected dpkg on your system
    > Installing termscp via Debian package
    > Downloaded debian package to /tmp/tmp.p34Qy4gYTZ.deb
    ! Root permissions are required to install termscpโ€ฆ
    [sudo] password for dgulino: 
    > Installing termscp as root, please waitโ€ฆ
    (Reading database ... 296583 files and directories currently installed.)
    Preparing to unpack /tmp/tmp.p34Qy4gYTZ.deb ...
    Unpacking termscp (0.9.0) over (0.9.0) ...
    Setting up termscp (0.9.0) ...
    โœ“ Congratulations! Termscp has successfully been installed on your system!
    > If you're a new user, you might be interested in reading the user manual <https://veeso.github.io/termscp/#user-manual>
    > While if you've just updated your termscp version, you can find the changelog at this link <https://veeso.github.io/termscp/#changelog>
    > Remember that if you encounter any issue, you can report them on Github <https://github.com/veeso/termscp/issues/new>
    > Feel free to open an issue also if you have an idea which could improve the project
    > If you want to support the project, please, consider a little donation <https://ko-fi.com/veeso>
    > I hope you'll enjoy using termscp :D
    
    termscp                                            
    termscp: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
    

    Additional information

    ย uname -a

    Linux 5520 5.15.0-47-generic #51-Ubuntu SMP Thu Aug 11 07:51:15 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
    

    ย lsb_release -a

    No LSB modules are available.
    Distributor ID:	Ubuntu
    Description:	Ubuntu 22.04.1 LTS
    Release:	22.04
    Codename:	jammy
    
    bug 
    opened by dgulinobw 6
  • [BUG] - Colours not reset after editor

    [BUG] - Colours not reset after editor

    Description

    When I open my editor (vim) which has a background colour set, the colours are not fully reset when switching back to the filetransfer view.

    See this GIF with exaggerated colours for a demonstration:

    colour

    Steps to reproduce

    1. Set a .vimrc with a background colour that is noticeably different from your normal terminal background. Example .vimrc used for the gif:

      highlight Normal ctermbg=darkblue
      
    2. open termscp

    3. edit a file (make sure your editor is set to vim)

    4. close the editor (:q)

    5. enjoy

    Expected behaviour

    I'd expect the interface to retain the visuals from before I opened the editor.

    Environment

    • OS: Arch Linux (5.15.13-arch1-1)
    • Architecture: x86_64
    • Rust version: 1.57.0
    • termscp version: reproduced with both AUR packaged version 0.8.0 and latest main (d1457253c480cbd852b3461389508437ee03240d)
    • Protocol used: ftp / sftp
    • Remote server version and name: docker image panubo/vsftpd:latest
    bug sorcery 
    opened by Pascal-So 6
  • [Feature Request] - Support UseKeychain in ssh config file

    [Feature Request] - Support UseKeychain in ssh config file

    Description

    My SSH keys are themselves passphrase protected, and MacOS stores those passphrases in the Keychain so I don't have to enter them everytime

    Description from man ssh_config:

    On macOS, specifies whether the system should search for passphrases in the user's keychain when attempting to use a particular key. When the passphrase is provided by the user, this option also specifies whether the passphrase should be stored into the keychain once it has been verified to be correct. The argument must be โ€œyesโ€ or โ€œnoโ€. The default is โ€œnoโ€.

    Changes

    The following changes to the application are expected

    • If I run termscp my_host it should work connect just as if I ran ssh my_host
    • At the very least, allow the config parser to fail silently on this particular config variable. It otherwise fails to use the config file at all
    bug new feature 
    opened by mgray88 6
  • [BUG] - SCP/FTP regex fails to parse when user or group contains symbols

    [BUG] - SCP/FTP regex fails to parse when user or group contains symbols

    Description

    I'm trying to use your lib/code to transfer a folder from the remote server to my local machine, and it's failing because there's a bug with the regular expression you use to parse the output of the "ls -la" command. the regex cannot handle this output "-rwxrwxrwx 1 www-data www-data 890524 Mar 14 2018 CIENTE.mdj"

    Steps to reproduce

    fn main() {
        //configure log
        CombinedLogger::init(
            vec![
                TermLogger::new(LevelFilter::Debug, Config::default(), TerminalMode::Mixed, ColorChoice::Auto),           
            ]
        ).unwrap();
        //configure host
        let localhost = Localhost::new(PathBuf::from(r"C:\MyRustProjects\fsbackup_engine")).unwrap();
    
        //connection setup
        let config = ProtocolParams::Generic(GenericProtocolParams {
            address: "192.168.133.13".to_string(),
            port: 22,
            username: Some(String::from("isaque.neves")),
            password: Some(String::from("Ins257257")),
        });
    
        let mut activity = FileTransferActivity::new(localhost, FileTransferProtocol::Scp, config);
        activity.connect();
    
        //let file_to_download = FsEntry::File(FsFile::from_str("/var/www/.profile")); //this work
        let dir_to_download = FsEntry::Directory(FsDirectory::from_str("/var/www/html/Alex"));
        let dest_dir_path = r"C:\MyRustProjects\fsbackup_engine\download";
        let destiny= PathBuf::from(dest_dir_path);
        //create directory if it doesn't exist
        std::fs::create_dir_all(dest_dir_path).expect(format!("Failed to create directory: {}", dest_dir_path).as_str());
    
        match activity.filetransfer_recv(TransferPayload::Any(dir_to_download), &destiny, None) {
            Ok(result) => {
                println!("result: {:?}", result);
            }
            Err(e) => {
                println!("error: {}", e);//eprintln!()
                process::exit(0);//1
            }
        }
    }
    

    Expected behaviour

    the expected behavior should be copying the directory without any errors

    Environment

    • OS: Linux Debian 10 to Windows 11
    • Architecture [x86_64]
    • Rust version rustc 1.56.1 (59eed8a2a 2021-11-01)
    • termscp version last
    • Protocol used SCP
    • Remote server version and name Linux Debian 10

    Log

    C:/rust/cargo/bin/cargo.exe run --color=always --package fsbackup_engine --bin fsbackup_engine
        Finished dev [unoptimized + debuginfo] target(s) in 0.12s
         Running `target\debug\fsbackup_engine.exe`
    17:40:28 [DEBUG] (1) fsbackup_engine::host: Initializing localhost at C:\MyRustProjects\fsbackup_engine
    17:40:28 [INFO] Localhost initialized with success
    17:40:28 [INFO] Connecting to 192.168.133.13:22
    17:40:28 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: Trying socket address 192.168.133.13:22
    17:40:28 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: 192.168.133.13:22 succeded
    17:40:28 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: Initializing handshake
    17:40:28 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: Authenticating with username isaque.neves and password *********
    17:40:28 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: Connection established: SSH-2.0-OpenSSH_7.9p1 Debian-10+deb10u2
    17:40:28 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: Getting working directory...
    17:40:28 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: Running command: pwd
    17:40:28 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: Command output: /home/isaque.neves
    
    17:40:28 [INFO] Connection established; working directory: /home/isaque.neves
    17:40:28 [INFO] Established connection with '192.168.133.13': "SSH-2.0-OpenSSH_7.9p1 Debian-10+deb10u2"
    17:40:28 [INFO] Getting file entries in /var/www/html/Alex
    17:40:28 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: Running command: cd "/home/isaque.neves"; unset LANG; ls -la "/var/www/html/Alex/"
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: Command output: total 2472
    drwxrwxrwx  2 www-data www-data    4096 Nov 25 13:34 .
    drwxrwxrwx 88 www-data www-data    4096 Nov 25 10:42 ..
    -rwxrwxrwx  1 www-data www-data  890524 Mar 14  2018 CIENTE.mdj
    -rwxrwxrwx  1 www-data www-data  149234 Aug  2  2017 permisao_cetil.xlsx
    -rwxrwxrwx  1 www-data www-data 1477161 Mar  6  2018 pmro_padrao.mdj
    
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: parsed FsEntry:  Err(())
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: parsed FsEntry:  Err(())
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: parsed FsEntry:  Err(())
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: parsed FsEntry:  Err(())
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: parsed FsEntry:  Err(())
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: parsed FsEntry:  Err(())
    17:40:29 [INFO] Found 0 out of 6 valid file entries
    17:40:29 [DEBUG] (1) fsbackup_engine::activities::filetransfer_activiy: Get local_dir_path: C:\MyRustProjects\fsbackup_engine\download
    17:40:29 [DEBUG] (1) fsbackup_engine::activities::filetransfer_activiy: Get dst_name: None
    17:40:29 [INFO] Making directory C:\MyRustProjects\fsbackup_engine\download\Alex
    17:40:29 [INFO] Created directory "C:\MyRustProjects\fsbackup_engine\download\Alex"
    17:40:29 [INFO] Getting file entries in /var/www/html/Alex
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: Running command: cd "/home/isaque.neves"; unset LANG; ls -la "/var/www/html/Alex/"
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: Command output: total 2472
    drwxrwxrwx  2 www-data www-data    4096 Nov 25 13:34 .
    drwxrwxrwx 88 www-data www-data    4096 Nov 25 10:42 ..
    -rwxrwxrwx  1 www-data www-data  890524 Mar 14  2018 CIENTE.mdj
    -rwxrwxrwx  1 www-data www-data  149234 Aug  2  2017 permisao_cetil.xlsx
    -rwxrwxrwx  1 www-data www-data 1477161 Mar  6  2018 pmro_padrao.mdj
    
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: parsed FsEntry:  Err(())
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: parsed FsEntry:  Err(())
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: parsed FsEntry:  Err(())
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: parsed FsEntry:  Err(())
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: parsed FsEntry:  Err(())
    17:40:29 [DEBUG] (1) fsbackup_engine::filetransfer::transfer::scp: parsed FsEntry:  Err(())
    17:40:29 [INFO] Found 0 out of 6 valid file entries
    fn notify_transfer_completed
    result: ()
    
    Process finished with exit code 0
    

    Additional information

    bug 
    opened by insinfo 5
  • [BUG] - Hidden UI elements when window height is too small

    [BUG] - Hidden UI elements when window height is too small

    Description

    If the window height gets too small, elements are hidden without indication (e.g. invisible password field). They can still be accessed with the keyboard and accept inputs.

    Screenshot

    Steps to reproduce

    Reduce the window height.

    Expected behaviour

    If UI elements do not fit the window, there should be a way to reveal them by scrolling. A scroll indicator should indicate that some elements are not visible.

    Environment

    • OS: Arch Linux, i3
    • Architecture: x86_64
    • termscp version: 0.5.0
    bug good first issue wontfix 
    opened by Markus00000 5
  • Add NetBSD

    Add NetBSD

    Description

    I've packaged termscp for NetBSD and I'm planning to merge the package within a day or two. An official pre-compiled binary should be available for users by early next week.

    List here your changes

    • Update README.md
    opened by 0323pin 4
  • [BUG] - prebuilt binary cannot run under macos 11

    [BUG] - prebuilt binary cannot run under macos 11

    Description

    I downloaded the prebuilt binary from releases page, and got below error when execute it.

    dyld: Library not loaded: /usr/local/opt/[email protected]/lib/libssl.1.1.dylib
      Referenced from: /Users/mac/Desktop/./termscp
      Reason: image not found
    Abort trap: 6
    

    Steps to reproduce

    curl -LO https://github.com/veeso/termscp/releases/download/v0.9.0/termscp-v0.9.0-x86_64-apple-darwin.tar.gz
    tar -xf termscp-v0.9.0-x86_64-apple-darwin.tar.gz
    ./termscp
    

    Expected behaviour

    application run success

    Environment

    • OS: macos 11.6.7
    • Architecture x86_64
    • termscp version
    installation 
    opened by kaala 4
  • Bump tokio from 1.21.2 to 1.24.1

    Bump tokio from 1.21.2 to 1.24.1

    Bumps tokio from 1.21.2 to 1.24.1.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.24.1

    This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#5356)

    #5356: tokio-rs/tokio#5356

    Tokio v1.24.0

    The highlight of this release is the reduction of lock contention for all I/O operations (#5300). We have received reports of up to a 20% improvement in CPU utilization and increased throughput for real-world I/O heavy applications.

    Fixed

    • rt: improve native AtomicU64 support detection (#5284)

    Added

    • rt: add configuration option for max number of I/O events polled from the OS per tick (#5186)
    • rt: add an environment variable for configuring the default number of worker threads per runtime instance (#4250)

    Changed

    • sync: reduce MPSC channel stack usage (#5294)
    • io: reduce lock contention in I/O operations (#5300)
    • fs: speed up read_dir() by chunking operations (#5309)
    • rt: use internal ThreadId implementation (#5329)
    • test: don't auto-advance time when a spawn_blocking task is running (#5115)

    #5186: tokio-rs/tokio#5186 #5294: tokio-rs/tokio#5294 #5284: tokio-rs/tokio#5284 #4250: tokio-rs/tokio#4250 #5300: tokio-rs/tokio#5300 #5329: tokio-rs/tokio#5329 #5115: tokio-rs/tokio#5115 #5309: tokio-rs/tokio#5309

    Tokio v1.23.1

    This release forward ports changes from 1.18.4.

    Fixed

    • net: fix Windows named pipe server builder to maintain option when toggling pipe mode (#5336).

    #5336: tokio-rs/tokio#5336

    Tokio v1.23.0

    Fixed

    • net: fix Windows named pipe connect (#5208)
    • io: support vectored writes for ChildStdin (#5216)
    • io: fix async fn ready() false positive for OS-specific events (#5231)

    ... (truncated)

    Commits
    • 31c7e82 chore: prepare Tokio v1.24.1 (#5357)
    • 8d8db27 tokio: add load and compare_exchange_weak to loom StaticAtomicU64 (#5356)
    • dfe252d chore: prepare Tokio v1.24.0 release (#5353)
    • 21b233f test: bump version of async-stream (#5347)
    • 7299304 Merge branch 'tokio-1.23.x' into master
    • 1a997ff chore: prepare Tokio v1.23.1 release
    • a8fe333 Merge branch 'tokio-1.20.x' into tokio-1.23.x
    • ba81945 chore: prepare Tokio 1.20.3 release
    • 763bdc9 ci: run WASI tasks using latest Rust
    • 9f98535 Merge remote-tracking branch 'origin/tokio-1.18.x' into fix-named-pipes-1.20
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • [Feature Request] Resuming

    [Feature Request] Resuming

    Description

    Please allow transfers to resume if the file already exists. Even better if it has a default setting.

    Changes

    The following changes to the application are expected

    • When the file (or directory) already exists, currently a confirmation dialog for "overwriting" exists, this should be extended to add a "resume" option
    • Perhaps add an option to to set a default choice (between overwrite/resume), possibly per connection
    new feature 
    opened by 0-wiz-0 0
  • [Feature Request] queuing transfers

    [Feature Request] queuing transfers

    Description

    It would be good to add queuing support, i.e. the user can mark a list of files to transfer one way or the other and then, when finished, start all the transfers.

    Changes

    The following changes to the application are expected

    • add a new command to add files to the transfer list
    • add a new command to remove files from the transfer list
    • perhaps add a new view that shows the transfer list
    • add a new command to start the actual transfer
    opened by 0-wiz-0 0
  • [Feature Request] - Import config from `~/.ssh/config`

    [Feature Request] - Import config from `~/.ssh/config`

    Description

    SSH config contain configuration of frequently accessed ssh connections, it can be parsed to set the default config for termscp.

    Changes

    The following changes to the application are expected

    • Parse and load ~/.ssh/config by default.

    Implementation

    There's no need to support every edge case. Implementation can be done based on priority as set by the community.

    • Maybe a separate section (other than bookmarks and recent connections) for the hosts defined in ~/.ssh/config.
    • When connecting to any hosts, respect the authentication config defined in ~/.ssh/config, unless explicitly defined in termscp.
    new feature 
    opened by sayanarijit 2
  • [BUG] - โ›” Error: Unable to exchange encryption keys [Windows 11]

    [BUG] - โ›” Error: Unable to exchange encryption keys [Windows 11]

    Description

    When I attempt to connect to my ODROID M1 running Ubuntu Server 64-bit, using SFTP or SCP protocols, I get an error saying unable to exchange encryption keys. This happens if I attempt to use id_rsa default SSH key or

    image

    Steps to reproduce

    • Use SFTP or SCP to connect to Ubuntu Server 22.04 (ARM or Intel 64-bit)

    Expected behaviour

    A clear and concise description of what you expected to happen.

    Environment

    • OS: [e.g. GNU/Linux Debian 10] Windows 11 Dev Preview
    • Architecture [Arm, x86_64, ...] Intel / AMD 64-bit
    • Rust version
    • termscp version 0.10
    • Protocol used SFTP and SCP
    • Remote server version and name Ubuntu Server 22.04 LTS (ARM and Intel/AMD 64-bit tested)
    bug 
    opened by pcgeek86 3
  • [New Feature] - termscp doesn't use id_rsa default SSH private key to authenticate to SFTP / SCP endpoint

    [New Feature] - termscp doesn't use id_rsa default SSH private key to authenticate to SFTP / SCP endpoint

    Description

    I would like termscp to use the id_rsa default SSH private key on my local filesystem.

    Steps to reproduce

    Try to connect to SFTP or SCP endpoint without using a password. Authentication fails.

    Expected behaviour

    By default, termscp should use $HOME/.ssh/id_rsa to authenticate as <username> at <hostname>.

    Environment

    • OS: [e.g. GNU/Linux Debian 10] MacOS
    • Architecture [Arm, x86_64, ...] Intel
    • Rust version
    • termscp version 0.9.0
    • Protocol used SFTP / SCP
    • Remote server version and name

    Log

    Report the snippet of the log file containing the unexpected behaviour. If there is any information you consider to be confidential, shadow it.

    Additional information

    Add any other context about the problem here.

    new feature 
    opened by pcgeek86 5
Releases(v0.10.0)
  • v0.10.0(Oct 15, 2022)

    0.10.0

    Released on 15/10/2022

    โญ 500 stars update โญ Thank you for supporting termscp and make it reaching 500 stars on Github

    • Changed keybindings for BACKTAB: backtab will now change the explorer tab
      • To active the LOG PANEL, use P
    • Yes/No dialogs are now answerable by pressing Y or N on your keyboard (Issue 121)
    • Use ssh2 config IdentityFile as fallback for key based authentication
    • Bugfix
      • Fixed Issue 122
      • Fixed version comparison when going above 0.9
    • Dependencies:
      • Bump argh to 0.1.9
      • Bump chrono to 0.4.22
      • Bump keyring to 1.2.0
      • Bump notify-rust to 4.5.10
      • Bump open to 3.0.3
      • Bump rpassword to 7.0.0
      • Changed regex to lazy-regex 2.3.0
      • Bump remotefs-ftp to 0.1.2
      • Bump remotefs-ssh to 0.1.2
      • Bump self_update to 0.32
      • Bump ssh2-config to 0.1.3
      • Bump tuirealm to 1.8.0
      • Bump tui-realm-stdlib to 1.1.7
      • Bump unicode-width to 0.1.10
      • Added version-compare 0.1.0
      • Bump whoami to 1.2.3
      • Bump wildmatch to 2.1.1
      • Removed libssl dependency
    Source code(tar.gz)
    Source code(zip)
    termscp-0.10.0-1.x86_64.rpm(4.60 MB)
    termscp-v0.10.0-arm64-apple-darwin.tar.gz(4.20 MB)
    termscp-v0.10.0-x86_64-apple-darwin.tar.gz(4.48 MB)
    termscp-v0.10.0-x86_64-pc-windows-msvc.zip(3.79 MB)
    termscp-v0.10.0-x86_64-unknown-linux-gnu.tar.gz(5.93 MB)
    termscp.0.10.0.nupkg(5.40 KB)
    termscp_0.10.0_amd64.deb(4.02 MB)
  • v0.9.0(Jun 18, 2022)

    0.9.0

    Released on 18/06/2022

    ๐Ÿ–๏ธ Tenerife Update ๐Ÿน

    • Bookmark name as hostname for CLI arguments
      • It is now possible to provide the name of the bookmark you want to connect to, instead of the address in command line arguments

        To do so it is enough to run termscp as follows:

        termscp -b <bookmark-name>
        

        If the password is stored in the bookmark, it will be used, otherwise you will be prompted to type the password in.

    • Remote directory path in authentication form and in bookmarks parameters:
      • It is now possible to configure the directory path you want to enter when you connect to the remote host from the authentication form
      • This parameter can be stored into bookmarks as you already do with the other parameters
      • You can find this field scrolling down in the authentication form
    • File system watcher:
      • It is now possible to synchronize changes from a local path to the remote host
      • Press <T> to start synchronizing changes from the selected directory/file to the remote directory
        • The changes will be automatically applied to the remote host with a maximum delay of 5 seconds
        • These changes are (if possible) applied: file removed, file changed, file renamed
      • Press <CTRL+T> to show all the currently synchronized files
    • Enhancements:
      • Improved s3 auth form scrolling
    • Bugfix:
      • Fixed SSH key list showing {hostname} at {username} instead of {username} at {hostname}
    • Dependencies:
      • Updated edit to 0.1.4
      • Updated log to 0.4.17
      • Updated magic-crypt to 3.1.10
      • Updated open to 2.1.3
      • Updated regex to 1.5.6
      • Updated rpassword to 6.0.1
      • Updated self_update to 0.30.0
      • Updated simplelog to 0.12.0
      • Updated toml to 0.5.9
      • Updated tui-realm to 1.6.0
    Source code(tar.gz)
    Source code(zip)
    termscp-0.9.0-1.x86_64.rpm(3.14 MB)
    termscp-v0.9.0-arm64-apple-darwin.tar.gz(3.63 MB)
    termscp-v0.9.0-x86_64-apple-darwin.tar.gz(3.86 MB)
    termscp-v0.9.0-x86_64-pc-windows-msvc.zip(3.25 MB)
    termscp-v0.9.0-x86_64-unknown-linux-gnu.tar.gz(4.27 MB)
    termscp.0.9.0.nupkg(5.40 KB)
    termscp_0.9.0_amd64.deb(2.84 MB)
  • v0.8.1(Mar 22, 2022)

    0.8.1

    Released on 22/03/2022

    • Added support for S3 compatible backends
      • Changed AWS S3 to S3 in ui
      • Added new endpoint and new-path-style to s3 connection parameters
    • Bugfix:
      • Issue 92: updated ssh2-config to 0.1.3, which solves this issue.
      • Issue 99: Fixed AltGr characters not allowed in auth form
    • Dependencies:
      • Updated keyring to 1.1.2
      • Updated notify-rust to 4.5.6
      • Updated open to 2.0.3
      • Updated rand to 0.8.5
      • Updated regex to 1.5.5
      • Updated remotefs-rs-aws-s3 to 0.2.0
      • Updated tui-realm to 1.5.0
      • Updated tui-realm-stdlib to 1.1.6
    Source code(tar.gz)
    Source code(zip)
    termscp-0.8.1-1.x86_64.rpm(2.92 MB)
    termscp-v0.8.1-arm64-apple-darwin.tar.gz(3.31 MB)
    termscp-v0.8.1-x86_64-apple-darwin.tar.gz(2.89 MB)
    termscp-v0.8.1-x86_64-pc-windows-msvc.zip(3.05 MB)
    termscp-v0.8.1-x86_64-unknown-linux-gnu.tar.gz(3.93 MB)
    termscp_0.8.1_amd64.deb(2.65 MB)
  • v0.8.0(Jan 6, 2022)

    0.8.0

    Released on 06/01/2022

    โ„๏ธ Winter update 2022 โ›„

    • Enhancements:
      • Synchronized browsing:
        • From now on, if synchronized browsing is enabled and you try to enter a directory that doesn't exist on the other host, you will be asked whether you'd like to create the directory.
      • Find feature:
        • A "wait popup" will now be displayed while searching files
        • If find command doesn't return any result show an info dialog and not an empty explorer
        • It is now possible to keep navigating on the other explorer while "found tab" is open
          • โ— It is not possible though to have the "found tab" on both explorers (otherwise you wouldn't be able to tell whether you're transferring files)
        • Files found from search are now displayed with their relative path from working directory
      • Ui:
        • Transfer abortion is now more responsive
        • Selected files will now be rendered with Reversed, underlined and italic text modifiers instead of being prepended with *.
        • Error popup message height is now calculated based on the content it must display.
        • Midnight commander keys
          • <F1>: Show help
          • <F2>: Save file as (actually I invented this)
          • <F3>: View file
          • <F4>: Open file (with text editor)
          • <F5>: Copy file
          • <F6>: Rename file
          • <F7>: Make directory
          • <F8>: Remove file
          • <F10>: Quit
        • Added footer with most used key bindings
        • โ— <TAB> will now switch explorer tab (will do what <LEFT> and <RIGHT> currently do)
        • โ— Use <BACKTAB> to switch between explorer tab and log tab. โ— Backtab is <SHIFT + TAB>
      • Tui-realm migration:
        • migrated application to tui-realm 1.x
        • Improved application performance
      • Changed the buffer size to 65535 (was 65536) for transfer I/O
    • Aws s3 connection parameters extension ๐ŸฆŠ:
      • Added Access Key to Aws-s3 connection parameters
      • Added Security Access Key to Aws-s3 connection parameters
      • Added Security token to Aws-s3 connection parameters
      • Added Session token to Aws-s3 connection parameters
    • SSH Config
      • Added ssh config parameter in configuration
      • It is now possible to specify the ssh configuration file to use
      • The supported parameters are described at https://github.com/veeso/ssh2-config.
      • If the field is left empty, no file will be loaded.
      • By default, no file will be used.
    • Symlink command:
      • You can now create symlinks, pressing <K> key on the file explorer.
    • Less verbose logging:
      • By default the log level is now set to INFO
      • It is now possible to enable the TRACE level with the -D CLI option.
    • Dependencies:
      • Added unicode-width 0.1.8
      • Updated argh to 0.1.7
      • Updated keyring to 1.0.0
      • Updated magic-crypt to 3.1.9
      • Updated open to 2.0.2
      • Updated notify-rust to 4.5.5
      • Updated self_update to 0.28.0
      • Updated simplelog to 0.11.1
      • Updated tempfile to 3.2.0
      • Updated tui-realm to 1.4.2
      • Updated tui-realm-stdlib to 1.1.5
      • Updated whoami to 1.2.1
      • Updated wildmatch to 2.1.0
      • Removed rust-s3, ssh2, suppaftp; replaced by remotefs 0.2.0, remotefs-aws-s3 0.1.0, remotefs-ftp 0.1.0 and remotefs-ssh 0.1.0
      • Removed crossterm (since bridged by tui-realm)
      • Removed textwrap (unused)
    Source code(tar.gz)
    Source code(zip)
    termscp-0.8.0-1.x86_64.rpm(2.98 MB)
    termscp-v0.8.0-x86_64-apple-darwin.tar.gz(2.97 MB)
    termscp-v0.8.0-x86_64-pc-windows-msvc.zip(3.12 MB)
    termscp-v0.8.0-x86_64-unknown-linux-gnu.tar.gz(4.02 MB)
    termscp.0.8.0.nupkg(5.40 KB)
    termscp_0.8.0_amd64.deb(2.70 MB)
  • v0.7.0(Oct 12, 2021)

    0.7.0

    Released on 12/10/2021

    ๐Ÿ Autumn update 2021 ๐Ÿ‡

    • Aws S3 ๐Ÿชฃ
      • Added support for the aws-s3 protocol.
      • Operate on your bucket directly from the file explorer.
      • You can also save your buckets as bookmarks.
      • Aws s3 reads credentials directly from your credentials file at $HOME/.aws/credentials or from environment. Read more in the user manual.
    • Auto update โฌ‡๏ธ
      • Possibility to update termscp directly via GUI or CLI.
      • Install update via CLI running (sudo) termscp --update.
      • Install update via GUI from auth form: when the "new version message" is displayed press <CTRL+R>, then enter YES in the radio input asking whether to install the update.
    • Notifications ๐Ÿ“ซ
      • termscp will now send Desktop notifications in these cases
        • on transfer completed (minimum transfer size can be specified in configuration; default 512MB)
        • on transfer error (same as above)
        • on update available
      • Added "notifications enabled" in configuration (Default enabled)
      • Added "Notifications: minimum transfer size": if transfer size is greater or equal than the specified value, notifications for transfer will be displayed.
    • Prompt user when about to replace existing file on a file transfer โ“
      • Whenever a file transfer is about to replace an existing file on local/remote host, you will be prompted if you're sure you really want to replace that file.
      • You may want to disable this option. You can go to configuration and set "Prompt when replacing existing files?" to "NO"
    • โ— BREAKING CHANGES โ—:
      • Added a new key in themes: misc_info_dialog: if your theme won't load, just reload it. If you're using a customised theme, you can add to it the missing key via a text editor. Just edit the theme.toml in your $CONFIG_DIR/termscp/theme.toml and add misc_info_dialog (Read more in manual at Themes).
    • Enhancements:
      • Reuse mounts in UI, in order to reduce executable size
      • File list can now be "rewinded", which means that moving with arrows will now allow you to go from top to bottom of the list pressing <UP> and viceversa pressing <DOWN>.
    • Bugfix:
      • Fixed Issue 70: Unable to type characters with CTRL+ALT (e.g. italian layout CTRL+ALT+รฒ => @) due to a crossterm issue. Fixed with tui-realm-stdlib 0.6.3.
    • Dependencies:
      • Added notify_rust 4.5.3
      • Added rust-s3 0.27-rc4
      • Added self_update 0.27.0
      • Updated argh to 0.1.6
      • Updated dirs to 4.0.0
      • Updated tui-realm-stdlib to 0.6.3
      • Removed ureq
    Source code(tar.gz)
    Source code(zip)
    termscp-0.7.0-1.x86_64.rpm(2.53 MB)
    termscp-v0.7.0-x86_64-apple-darwin.tar.gz(2.87 MB)
    termscp-v0.7.0-x86_64-pc-windows-msvc.zip(3.00 MB)
    termscp-v0.7.0-x86_64-unknown-linux-gnu.tar.gz(3.37 MB)
    termscp.0.7.0.1.nupkg(5.41 KB)
    termscp_0.7.0_amd64.deb(2.30 MB)
  • v0.6.1(Aug 30, 2021)

    0.6.1

    Released on 30/08/2021

    • Enhancements:
      • Now that tui-rs supports title alignment, UI has been improved
      • Added new Directory already exists variant for file transfer errors
    • Bugfix:
      • Fixed Issue 58:When uploading a directory, create directory only if it doesn't exist
      • Fixed Issue 59: When copying files with tricky copy, the upper progress bar shows no text
    • Dependencies:
      • Updated bitflags to 1.3.2
      • Updated bytesize to 1.1.0
      • Updated crossterm to 0.20
      • Updated open to 2.0.1
      • Added tui-realm-stdlib 0.6.0
      • Replaced ftp4 with suppaftp 4.1.2
      • Updated tui-realm to 0.6.0
    Source code(tar.gz)
    Source code(zip)
    termscp-0.6.1-1.x86_64.rpm(2.94 MB)
    termscp-0.6.1-msvc.zip(2.07 MB)
    termscp-mac.tar.gz(2.42 MB)
    termscp-v0.6.1-x86_64-apple-darwin.tar.gz(2.42 MB)
    termscp-v0.6.1-x86_64-pc-windows-msvc.zip(2.07 MB)
    termscp-v0.6.1-x86_64-unknown-freebsd.tar.gz(3.51 MB)
    termscp-v0.6.1-x86_64-unknown-linux-gnu.tar.gz(2.40 MB)
    termscp.0.6.1.nupkg(5.37 KB)
    termscp_0.6.1_amd64.deb(1.79 MB)
  • v0.6.0(Jul 23, 2021)

    0.6.0

    Released on 23/07/2021

    ๐Ÿน Summer update 2021 ๐Ÿจ

    • Open any file in explorer:
      • Open file with default program for file type with <V>
      • Open file with a specific program with <W>
    • Themes:
      • You can now set colors for 26 elements in the application
      • Colors can be any RGB, also CSS colors syntax is supported (e.g. aquamarine)
      • Configure theme from settings or import from CLI using the -t <theme file> argument
      • You can find several themes in the themes/ directory
    • Keyring support for Linux
      • From now on keyring will be available for Linux only
      • Read the manual to find out if your system supports the keyring and how you can enable it
      • libdbus is now a dependency
      • added with-keyring feature
      • โ— BREAKING CHANGE โ—: if you start using keyring on Linux, all the saved password will be lost
    • In-app release notes
      • Possibility to see the release note of the new available release whenever a new version is available
      • Just press <CTRL+R> when a new version is available from the auth activity to read the release notes
    • Installation script:
      • From now on, in case cargo is used to install termscp, all the cargo dependencies will be installed
    • Start termscp from configuration: Start termscp with -c or --config to start termscp from configuration page
    • Enhancements:
      • Show a "wait" message when deleting, copying and moving files and when executing commands
      • Replaced all ... with โ€ฆ in texts
      • Check if remote host is valid in authentication form
      • Check if port number is valid in authentication form
      • From now on, if you try to leave setup without making any change, you won't be prompted whether to save configuration or not
    • Bugfix:
      • Fixed broken input cursor when typing UTF8 characters (tui-realm 0.3.2)
      • Fixed save bookmark dialog: you could switch out from dialog with <TAB>
      • Fixed transfer interruption: it was not possible to abort a transfer if the size of the file was less than 65k
      • Changed Remote address to Remote host in authentication form
    • Dependencies:
      • Added argh 0.1.5
      • Added open 1.7.0
      • Removed getopts
      • Updated rand to 0.8.4
      • Updated textwrap to 0.14.2
      • Updated tui-realm to 0.4.3
    Source code(tar.gz)
    Source code(zip)
    termscp-0.6.0-1.x86_64.rpm(2.93 MB)
    termscp-0.6.0-msvc.zip(2.08 MB)
    termscp-0.6.0.txz(2.56 MB)
    termscp-mac.tar.gz(2.41 MB)
    termscp.0.6.0.nupkg(5.37 KB)
    termscp_0.6.0_amd64.deb(1.78 MB)
  • v0.5.1(Jun 21, 2021)

    0.5.1

    Released on 21/06/2021

    • Enhancements:
      • CI now uses containers to test file transfers (SSH/FTP)
        • Improved coverage
        • Found many bugs which has now been fixed
        • Build in CI won't fail due to test servers not responding
        • We're now able to test all the functionalities of the file transfers
      • Status bar improvements
        • "Show hidden files" in status bar
        • Status bar has now been splitted into two, one for each explorer tab
      • Error message if terminal window is too small
        • If the terminal window has less than 24 lines, then an error message is displayed in the auth activity
        • Changed auth layout to absolute sizes
    • Bugfix:
      • Fixed UI not showing connection errors
      • Fixed termscp on Windows dying whenever opening a file with text editor
      • Fixed broken input cursor when typing UTF8 characters (tui-realm 0.3.2)
      • Fixed Issue 44: Could not move files to other paths in FTP
      • Fixed Issue 43: Could not remove non-empty directories in FTP
      • Fixed Issue 39: Help panels as ScrollTable to allow displaying entire content on small screens
      • Fixed Issue 38: Transfer size was wrong when transferring "selected" files (with mark)
      • Fixed Issue 37: progress bar not visible when editing remote files
    • Dependencies:
      • Updated textwrap to 0.14.0
      • Updated tui-realm to 0.4.2
    Source code(tar.gz)
    Source code(zip)
    termscp-0.5.1-1.x86_64.rpm(2.79 MB)
    termscp-0.5.1-msvc.zip(2.03 MB)
    termscp-0.5.1.txz(2.51 MB)
    termscp-mac.tar.gz(2.38 MB)
    termscp.0.5.1.nupkg(5.37 KB)
    termscp_0.5.1_amd64.deb(1.68 MB)
  • v0.5.0(May 23, 2021)

    0.5.0

    Released on 23/05/2021

    ๐ŸŒธ Spring Update 2021 ๐ŸŒท

    • Synchronized browsing:
      • Added the possibility to enabled the synchronized brower navigation
        • when you enter a directory, the same directory will be entered on the other tab
        • Enable sync browser with <Y>
        • Read more on manual: Synchronized browsing
    • Remote and Local hosts file formatter:
      • Added the possibility to set different formatters for local and remote hosts
    • Work on multiple files:
      • Added the possibility to work on multiple files simultaneously
      • Select a file with <M>, the file when selected will have a * prepended to its name
      • Select all files in the current directory with <CTRL+A>
      • Read more on manual: Work on multiple files
    • Logging:
      • termscp now writes a log file, useful to debug and to contribute to fix issues.
      • Read more on manual
    • File transfer changes
      • SFTP
        • Added COPY command to SFTP (Please note that Copy command is not supported by SFTP natively, so here it just uses the cp shell command as it does in SCP).
      • FTP
        • Added support for file copy (achieved through tricky-copy: the file is first downloaded, then uploaded with a different file name)
    • Double progress bar:
      • From now one two progress bar will be displayed:
        • the first, on top, displays the full transfer state (e.g. when downloading a directory of 10 files, the progress of the entire transfer)
        • the second, on bottom, displays the transfer of the individual file being written (as happened for the old versions)
        • changed the progress bar colour from LightGreen to Green
    • Enhancements
      • Added a status bar in the file explorer showing whether the sync browser is enabled and which file sorting mode is selected
      • Removed the goold old figlet title
      • Protocol input as first field in UI
      • Port is now updated to standard for selected protocol
        • when you change the protocol in the authentication form and the current port is standard (< 1024), the port will be automatically changed to default value for the selected protocol (e.g. current port: 123, protocol changed to FTP, port becomes 21)
    • Bugfix:
      • Fixed wrong text wrap in log box
      • Fixed empty bookmark name causing termscp to crash
      • Fixed error message not being shown after an upload failure
      • Fixed default protocol not being loaded from config
      • Issue 23: Remove created file if transfer failed or was abrupted
    • Dependencies:
      • Added tui-realm 0.3.0
      • Removed tui (as direct dependency)
      • Updated regex to 1.5.4
    Source code(tar.gz)
    Source code(zip)
    termscp-0.5.0-1.x86_64.rpm(2.79 MB)
    termscp-0.5.0-msvc.zip(2.02 MB)
    termscp-0.5.0-x86_64.tar.gz(2.24 MB)
    termscp-mac.tar.gz(2.36 MB)
    termscp.0.5.0.nupkg(5.37 KB)
    termscp_0.5.0_amd64.deb(1.67 MB)
  • v0.4.2(Apr 13, 2021)

  • v0.4.1(Apr 7, 2021)

    0.4.1

    Released on 07/04/2021

    • Enhancements:
      • SCP file transfer:
        • Added possibility to stat directories.
    • Bugfix:
      • Issue 18: Set file transfer type to Binary for FTP
      • Issue 17
        • SCP: fixed symlink not properly detected
        • FTP: added symlink support for Linux targets
      • Issue 10: Fixed port not being loaded from bookmarks into gui
      • Issue 9: Fixed issues related to paths on remote when using Windows
    • Dependencies:
      • Added path-slash 0.1.4 (Windows only)
      • Added thiserror 1.0.24
      • Updated edit to 0.1.3
      • Updated magic-crypt to 3.1.7
      • Updated rand to 0.8.3
      • Updated regex to 1.4.5
      • Updated textwrap to 0.13.4
      • Updated ureq to 2.1.0
      • Updated whoami to 1.1.1
      • Updated wildmatch to 2.0.0
    Source code(tar.gz)
    Source code(zip)
    termscp-0.4.1-1.x86_64.rpm(2.77 MB)
    termscp-0.4.1-msvc.zip(1.99 MB)
    termscp-0.4.1-x86_64.tar.gz(2.15 MB)
    termscp-mac.tar.gz(2.31 MB)
    termscp.0.4.1.nupkg(4.89 KB)
    termscp_0.4.1_amd64.deb(1.67 MB)
  • v0.4.0(Mar 27, 2021)

    0.4.0

    Released on 27/03/2021

    • New explorer features:
      • Execute a command pressing X. This feature is supported on both local and remote hosts (only SFTP/SCP protocols support this feature).
      • Find: search for files pressing F using wild matches.
    • Enhancements:
      • Input fields will now support "input keys" (such as moving cursor, DEL, END, HOME, ...)
      • Improved performance regarding configuration I/O (config client is now shared in the activity context)
      • Fetch latest version from Github once; cache previous value in the Context Storage.
    • Bugfix:
      • Prevent resetting explorer index on remote tab after performing certain actions (list dir, exec, ...)
      • SCP file transfer: prevent infinite loops while performing stat on symbolic links pointing to themselves (e.g. mylink -> mylink)
      • Fixed a bug causing termscp to crash if removing a bookmark
      • Fixed file format cursor position in the GUI
      • Fixed a bug causing termscp to show two equal bookmarks when overwriting one.
      • Fixed system tests which deleted the termscp configuration when launched
    • LICENSE: changed license to MIT
    • Dependencies:
      • Removed unicode-width
      • Added wildmatch 1.0.13
    • For developers:
      • Activity refactoring
        • Developed an internal library used to create components, components are then nested inside a View
        • The new engine works through properties and states, then returns Messages. I was inspired by both React and Elm.
    Source code(tar.gz)
    Source code(zip)
    termscp-0.4.0-1.x86_64.rpm(2.76 MB)
    termscp-0.4.0-msvc.zip(1.98 MB)
    termscp-0.4.0-x86_64.tar.gz(2.14 MB)
    termscp-mac.tar.gz(2.30 MB)
    termscp.0.4.0.nupkg(4.89 KB)
    termscp_0.4.0_amd64.deb(1.67 MB)
  • v0.3.3(Feb 28, 2021)

    0.3.3

    Released on 28/02/2021

    • Format key attributes:
      • Added EXTRA and LENGTH parameters to format keys.
      • Now keys are provided with this syntax {KEY_NAME[:LEN[:EXTRA]}
    • Check for updates:
      • TermSCP will now check for updates on startup and will show in the main page if there is a new version available
      • This feature may be disabled from setup (Check for updates => No)
    • Enhancements:
      • Default choice for deleting file set to "NO" (way too easy to delete files by mistake)
      • Added CLI options to set starting workind directory on both local and remote hosts
      • Parse remote host now uses a Regex to gather parts (increased stability).
      • Now bookmarks and recents are sorted in the UI (bookmarks are sorted by name; recents are sorted by connection datetime)
      • Improved stability
    Source code(tar.gz)
    Source code(zip)
    termscp-0.3.3-1.x86_64.rpm(2.72 MB)
    termscp-0.3.3-msvc.zip(1.93 MB)
    termscp-0.3.3-x86_64.tar.gz(2.09 MB)
    termscp-mac.tar.gz(2.24 MB)
    termscp.0.3.3.nupkg(4.89 KB)
    termscp_0.3.3_amd64.deb(1.64 MB)
  • v0.3.2(Jan 24, 2021)

    0.3.2

    Released on 24/01/2021

    • Explorer Formatter:
      • Added possibility to customize the format when listing files in the explorers (Read more on README)
      • Added file_fmt key to configuration (if missing, default will be used).
      • Added the text input to the Settings view to set the value for file_fmt.
    • Bugfix:
      • Solved file index in explorer files at start of termscp, in case the first entry is an hidden file
      • SCP File transfer: when listing directory entries, check if a symlink points to a directory or to a file
    • Dependencies:
      • updated crossterm to 0.19.0
      • updated rand to 0.8.2
      • updated rpassword to 5.0.1
      • updated serde to 1.0.121
      • updated tui to 0.14.0
      • updated whoami to 1.1.0
    Source code(tar.gz)
    Source code(zip)
    termscp-0.3.2-1.x86_64.rpm(1.28 MB)
    termscp-0.3.2-msvc.zip(1.19 MB)
    termscp-0.3.2-x86_64.tar.gz(1.29 MB)
    termscp-mac.tar.gz(1.38 MB)
    termscp.0.3.2.nupkg(4.89 KB)
    termscp_0.3.2_amd64.deb(970.60 KB)
  • v0.3.1(Jan 18, 2021)

    0.3.1

    Released on 18/01/2021

    • Keyring to store secrets
      • On both MacOS and Windows, the secret used to encrypt passwords in bookmarks it is now store in the OS secret vault. This provides much more security to store the password
    • Enhancements:
      • Added connection timeout to 30 seconds to SFTP/SCP clients and improved name lookup system.
    • Bugfix:
      • Solved index in explorer files list which was no more kept after 0.3.0
      • SCP file transfer: fixed possible wrong file size when sending file, due to a possible incoherent size between the file explorer and the actual file size.
    • Breaking changes: on MacOS / Windows systems only, the password you saved for bookmarks won't be working anymore if you have support for the keyring crate. Because of the migration to keyring, the previously used secret hasn't been migrated to the storage, instead a new secret will be used. To solve this, just save the bookmark again with the password.
    Source code(tar.gz)
    Source code(zip)
    termscp-0.3.1-1.x86_64.rpm(1.28 MB)
    termscp-0.3.1-msvc.zip(1.18 MB)
    termscp-0.3.1-x86_64.tar.gz(1.29 MB)
    termscp-mac.tar.gz(1.37 MB)
    termscp.0.3.1.nupkg(4.89 KB)
    termscp_0.3.1_amd64.deb(962.95 KB)
  • v0.3.0(Jan 10, 2021)

    0.3.0

    Released on 10/01/2021

    The SSH Key Storage Update

    • SSH Key Storage
      • Added the possibility to store SSH private keys to access to remote hosts; this feature is supported in both SFTP and SCP.
      • SSH Keys can be manipulated through the new Setup Interface
    • Setup Interface
      • Added a new area in the interface, where is possible to customize termscp. Access to this interface is achieved pressing <CTRL+C> from the home page (AuthActivity).
    • Configuration:
      • Added configuration; configuration is stored at
        • Linux: /home/alice/.config/termscp/config.toml
        • MacOS: /Users/Alice/Library/Application Support/termscp/config.toml
        • Windows: C:\Users\Alice\AppData\Roaming\termscp\config.toml
      • Added Text editor to configuration
      • Added Default File transfer protocol to configuration
      • Added "Show hidden files" to configuration
      • Added "Group directories" to configuration
      • Added SSH keys to configuration; SSH keys will be stored at
        • Linux: /home/alice/.config/termscp/.ssh/
        • MacOS: /Users/Alice/Library/Application Support/termscp/.ssh/
        • Windows: C:\Users\Alice\AppData\Roaming\termscp\.ssh\
    • Enhancements:
      • Replaced sha256 sum with last modification time check, to verify if a file has been changed in the text editor
      • FTP
        • Added LIST command parser for Windows server (DOS-like syntax)
      • Default protocol changed to default protocol in configuration when providing address as CLI argument
      • Explorers:
        • Hidden files are now not shown by default; use A to show hidden files.
        • Append / to directories name.
    • Keybindings:
      • A: Toggle hidden files
      • B: Sort files by (name, size, creation time, modify time)
      • N: New file
    • Bugfix:
      • SCP client didn't show file types for files
      • FTP client didn't show file types for files
      • FTP file transfer not working properly with STOR and RETR.
      • Fixed 0 B/S transfer rate displayed after completing download in less than 1 second
    • Dependencies:
      • added bitflags 1.2.1
      • removed data-encoding
      • updated ftp to 4.0.2
      • updated rand to 0.8.0
      • removed ring
      • updated textwrap to 0.13.1
      • updated toml to 0.5.8
      • updated whoami to 1.0.1
    Source code(tar.gz)
    Source code(zip)
    termscp-0.3.0-1.x86_64.rpm(1.28 MB)
    termscp-0.3.0-msvc.zip(1.18 MB)
    termscp-0.3.0-x86_64.tar.gz(1.28 MB)
    termscp-mac.tar.gz(1.36 MB)
    termscp.0.3.0.nupkg(4.89 KB)
    termscp_0.3.0_amd64.deb(961.11 KB)
  • v0.2.0(Dec 21, 2020)

    0.2.0

    Released on 21/12/2020

    The Bookmarks Update

    • Bookmarks
      • Bookmarks and recent connections are now displayed in the home page
      • Bookmarks are saved at
        • Linux: /home/alice/.config/termscp/bookmarks.toml
        • Windows: C:\Users\Alice\AppData\Roaming\termscp\bookmarks.toml
        • MacOS: /Users/Alice/Library/Application Support/termscp/bookmarks.toml
    • Text Editor
      • Added text editor feature to explorer view
      • Added o to keybindings to open a text file
    • Keybindings:
      • C: Copy file/directory
      • O: Open text file in editor
    • Enhancements:
      • User interface
        • Collpased borders to make everything more aesthetic
        • Rounded input field boards
        • File explorer:
          • Log how long it took to upload/download a file and the transfer speed
          • Display in progress bar the transfer speed (bytes/seconds)
    • Bugfix:
      • File mode of file on remote is now reported on local file after being downloaded (unix, linux, macos only)
      • Scp: when username was not provided, it didn't fallback to current username
      • Explorer: fixed UID format in Windows
    Source code(tar.gz)
    Source code(zip)
    termscp-0.2.0-1.x86_64.rpm(1.20 MB)
    termscp-0.2.0-msvc.zip(1.31 MB)
    termscp-0.2.0-x86_64.tar.gz(1.20 MB)
    termscp-mac.tar.gz(1.31 MB)
    termscp.0.2.0.nupkg(19.81 KB)
    termscp_0.2.0_amd64.deb(910.08 KB)
  • v0.1.3(Dec 14, 2020)

    0.1.3

    Released on 14/12/2020

    • Enhancements:
      • File transfer:
        • Read buffer is now 65536 bytes long
      • File explorer:
        • Fixed color mismatch in local explorer
        • Explorer tabs have now 70% of layout height, while logging area is 30%
        • Highlight selected entry in tabs, only when the tab is active
      • Auth page:
        • align popup text to center
    • Keybindings:
      • L: Refresh directory content
    • Bugfix:
      • Fixed memory vulnerability in Windows version
    Source code(tar.gz)
    Source code(zip)
    termscp-0.1.3-1.x86_64.rpm(1.00 MB)
    termscp-0.1.3-msvc.zip(915.65 KB)
    termscp-mac.tar.gz(1.07 MB)
    termscp.0.1.3.nupkg(19.80 KB)
    termscp_0.1.3_amd64.deb(760.06 KB)
  • v0.1.2(Dec 13, 2020)

    0.1.2

    Released on 13/12/2020

    • General performance and code improvements
    • Improved symlinks management
    • Possibility to abort file transfers
    • Enhancements:
      • File explorer:
        • When file index is at the end of the list, moving down will set the current index to the first element and viceversa.
        • Selected file has now colourful background, instead of foreground, for a better readability.
    • Keybindings:
      • E: Delete file (Same as DEL); added because some keyboards don't have DEL (hey, that's my MacBook Air's keyboard!)
      • Ctrl+C: Abort transfer process
    Source code(tar.gz)
    Source code(zip)
    termscp-0.1.2-1.x86_64.rpm(1.81 MB)
    termscp-0.1.2-msvc.zip(914.79 KB)
    termscp-mac.tar.gz(1.07 MB)
    termscp.0.1.2.nupkg(19.80 KB)
    termscp_0.1.2_amd64.deb(766.89 KB)
  • v0.1.1(Dec 10, 2020)

    0.1.1

    Released on 10/12/2020

    • enhancements:
      • password prompt: ask before performing terminal clear
      • file explorer:
        • file names are now sorted ignoring capital letters
        • file names longer than 23, are now cut to 20 and followed by ...
        • paths which exceed tab size in explorer are elided with the following formato ANCESTOR[1]/.../PARENT/DIRNAME
    • keybindings:
      • I: show info about selected file or directory
      • Removed CTRL; just use keys now.
    • bugfix:
      • prevent panic in set_progress, for progress values > 100.0 or < 0.0
      • Fixed FTP get, which didn't finalize the reader
    • dependencies:
      • updated textwrap to 0.13.0
      • updated ftp4 to 4.0.1
    Source code(tar.gz)
    Source code(zip)
    termscp-0.1.1-1.x86_64.rpm(1.01 MB)
    termscp-0.1.1-msvc.zip(911.19 KB)
    termscp-mac.tar.gz(1.07 MB)
    termscp.0.1.1.nupkg(19.80 KB)
    termscp_0.1.1_amd64.deb(764.90 KB)
Owner
Christian Visintin
24 years old, software and web developer and geek. I mostly develop in Rust, Elixir and Python.
Christian Visintin
Rich terminals. follows Python's rich conventions

richterm use richterm::print; use richterm::text; use richterm::track; use richterm::progress; use std::{thread, time}; fn main() { let vec = ve

Abdur-Rahmaan Janhangeer 14 Aug 5, 2023
1 library and 2 binary crates to run SSH/SCP commands on a "mass" of hosts in parallel

massh 1 library and 2 binary crates to run SSH/SCP commands on a "mass" of hosts in parallel. The binary crates are CLI and GUI "frontends" for the li

null 2 Oct 16, 2022
A lightweight but incredibly powerful and feature-rich BitTorrent tracker. Supports UDP + HTTP(S) and a private tracker mode.

Torrust Tracker Project Description Torrust Tracker is a lightweight but incredibly powerful and feature-rich BitTorrent tracker made using Rust. Feat

Torrust 162 Dec 31, 2022
Fast, minimal, feature-rich, extended formatting syntax for Rust!

Formatting Tools Fast, minimal, feature-rich, extended formatting syntax for Rust! Features include: Arbitrary expressions inside the formatting brace

Casper 58 Dec 26, 2022
A hackable, minimal, fast TUI file explorer, stealing ideas from nnn and fzf.

xplr A hackable, minimal, fast TUI file explorer, stealing ideas from nnn and fzf. [Quickstart] [Features] [Plugins] [Documentation] [Upgrade Guide] [

Arijit Basu 2.6k Jan 1, 2023
A simple library fot creating file explorer for the ratatui crate.

ratatui-explorer ratatui-explorer is a simple library for creating file explorers for ratatui. Features: File explorer functionality. Input handling (

null 5 Feb 29, 2024
A library that creates a terminal-like window with feature-packed drawing of text and easy input handling. MIRROR.

BearLibTerminal provides a pseudoterminal window with a grid of character cells and a simple yet powerful API for flexible textual output and uncompli

Tommy Ettinger 43 Oct 31, 2022
Native cross-platform full feature terminal-based sequence editor for git interactive rebase.

Native cross-platform full feature terminal-based sequence editor for git interactive rebase.

Tim Oram 1.2k Jan 2, 2023
Git Explorer: cross-platform git workflow improvement tool inspired by Magit

Gex Git workflow improvement CLI tool inspired by Magit. This project is still under initial development, but I am actively dogfooding it and features

Peter Hebden 204 Jan 6, 2023
Save decryption/encryption and transfer utility for Automachef

automachef-save Automachef by HermesInteractive encrypts it's save files with the user's account ID (Steam, Epic) or a static key (GOG, Twitch). The I

null 2 Jul 2, 2022
Store your transfer.sh links, so you can remember them later and know when they will expire, but now written in Rust.

Transfer.sh helper Rusted The idea of the script is to store your transfer.sh links and simplify its usage, so you can remember them later and know wh

Reinaldo Rozato Junior 10 Nov 30, 2022
epNFTs, the first partial program-owned NFT Standard powered by Instruction Introspection and Transfer Hooks!

epNFT Standard: A Comprehensive Guide Introduction to epNFTs Welcome to the epNFT-standard repository, where we explore the first program-owned NFT st

epPlex 6 Mar 1, 2024
nvim-oxi provides safe and idiomatic Rust bindings to the rich API exposed by the Neovim text editor.

?? nvim-oxi nvim-oxi provides safe and idiomatic Rust bindings to the rich API exposed by the Neovim text editor. The project is mostly intended for p

Riccardo Mazzarini 655 Jul 13, 2023
Estratto is a powerful and user-friendly Rust library designed for extracting rich audio features from digital audio signals.

estratto ใ€œ An Audio Feature Extraction Library estratto is a powerful and user-friendly Rust library designed for extracting rich audio features from

Amber J Blue 5 Aug 25, 2023
Detects whether a terminal supports color, and gives details about that support

Detects whether a terminal supports color, and gives details about that support. It takes into account the NO_COLOR environment variable. This crate i

Kat Marchรกn 30 Dec 29, 2022
Firefox used to have this feature a while back (from Firefox 11 to 46) and it is so good, that I feel it needs revival.

3D WebPage Inspector By: Seanpm2001, Et; Al. Top README.md Read this article in a different language Sorted by: A-Z Sorting options unavailable ( af A

Sean P. Myrick V19.1.7.2 3 Nov 10, 2022
An abstract, safe, and concise color conversion library for rust nightly This requires the feature adt_const_params

colortypes A type safe color conversion library This crate provides many methods for converting between color types. Everything is implemented abstrac

Jacob 13 Dec 7, 2022
Find potential unused enabled feature flags and prune them.

Potential unused, enabled feature flag finder and pruner. This cargo tool allows you to find and prune enabled, but, potentially unused feature flags

Timon 118 Jun 29, 2023
A beautiful and feature-packed Apple Music CLI

am A beautiful and feature-packed Apple Music CLI! Written in Rust. Installation Nix (recommended) This GitHub repository contains a flake. Add github

Ryan Cao 5 Sep 21, 2023