{"id":13524713,"url":"https://github.com/wchang22/LuminS","last_synced_at":"2025-04-01T03:32:26.587Z","repository":{"id":34182155,"uuid":"170433514","full_name":"wchang22/LuminS","owner":"wchang22","description":"A fast and reliable alternative to rsync for synchronizing local files written in Rust","archived":false,"fork":false,"pushed_at":"2022-06-14T23:46:00.000Z","size":183,"stargazers_count":364,"open_issues_count":14,"forks_count":17,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-29T13:52:00.784Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wchang22.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-13T03:28:00.000Z","updated_at":"2025-03-01T20:42:17.000Z","dependencies_parsed_at":"2022-08-08T00:01:51.708Z","dependency_job_id":null,"html_url":"https://github.com/wchang22/LuminS","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wchang22%2FLuminS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wchang22%2FLuminS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wchang22%2FLuminS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wchang22%2FLuminS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wchang22","download_url":"https://codeload.github.com/wchang22/LuminS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246578587,"owners_count":20799851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:01:12.704Z","updated_at":"2025-04-01T03:32:26.325Z","avatar_url":"https://github.com/wchang22.png","language":"Rust","funding_links":[],"categories":["Command Line","Rust"],"sub_categories":["Dependency Management"],"readme":"\u003ch1 align=\"center\"\u003eLuminS\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eLuminous Synchronize\u003c/h3\u003e\n\u003ch4 align=\"center\"\u003eA fast and reliable alternative to rsync for synchronizing local files\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://travis-ci.org/wchang22/LuminS\"\u003e\u003cimg src=\"https://travis-ci.org/wchang22/LuminS.svg?branch=master\" alt=\"Build Status\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/wchang22/LuminS\"\u003e\u003cimg src=\"https://codecov.io/gh/wchang22/LuminS/branch/master/graph/badge.svg\" alt=\"Code Coverage\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://crates.io/crates/lms\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/lms.svg\" alt=\"Crate\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://docs.rs/lms\"\u003e\u003cimg src=\"https://docs.rs/lms/badge.svg\" alt=\"Docs\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"examples/lumins.gif\" alt=\"Demo\"\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\u003cb\u003eNote\u003c/b\u003e: This project is no longer actively maintained. Pull requests are still welcome.\u003c/h3\u003e\n\n## Features\n\n\u003ctable\u003e\n    \u003ctr\u003e\u003ctd\u003e\u003cb\u003e100% Rust\u003c/b\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e\u003cb\u003ePowered by the \u003ca href=\"https://github.com/rayon-rs/rayon\"\u003eRayon\u003c/a\u003e library for high parallel perfomance\u003c/b\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e\u003cb\u003eSupported on Unix-based platforms or Windows\u003c/b\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e\u003cb\u003eExtremely fast at synchronizing directories with large quantities of files\u003c/b\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e\u003cb\u003eMultithreaded copy, remove, and sync\u003c/b\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e\u003cb\u003eA progress bar using \u003ca href=\"https://github.com/mitsuhiko/indicatif\"\u003eindicatif\u003c/a\u003e\u003c/b\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n\n## Usage\n\n```bash\nUSAGE:\n    lms [SUBCOMMAND]\n\nFLAGS:\n    -h, --help       Prints help information\n    -V, --version    Prints version information\n\nSUBCOMMANDS:\n    cp      Multithreaded directory copy\n    help    Prints this message or the help of the given subcommand(s)\n    rm      Multithreaded directory remove\n    sync    Multithreaded directory synchronization [aliases: s]\n```\n#### Sync\n\n```bash\nUSAGE:\n    lms sync [FLAGS] \u003cSOURCE\u003e \u003cDESTINATION\u003e\n\nFLAGS:\n    -h, --help          Prints help information\n    -n, --nodelete      Do not delete any destination files\n    -s, --secure        Use a cryptographic hash function for hashing similar files\n    -S, --sequential    Copy files sequentially instead of in parallel\n    -V, --version       Prints version information\n    -v, --verbose       Verbose outputs\n\nARGS:\n    \u003cSOURCE\u003e         Source directory\n    \u003cDESTINATION\u003e    Destination directory\n```\n\n#### Copy\n\n```bash\nUSAGE:\n    lms cp [FLAGS] \u003cSOURCE\u003e \u003cDESTINATION\u003e\n\nFLAGS:\n    -h, --help          Prints help information\n    -S, --sequential    Copy files sequentially instead of in parallel\n    -V, --version       Prints version information\n    -v, --verbose       Verbose outputs\n\nARGS:\n    \u003cSOURCE\u003e         Source directory\n    \u003cDESTINATION\u003e    Destination directory\n```\n\n#### Remove\n\n```bash\nUSAGE:\n    lms rm [FLAGS] \u003cTARGET\u003e...\n\nFLAGS:\n    -h, --help          Prints help information\n    -S, --sequential    Delete files sequentially instead of in parallel\n    -V, --version       Prints version information\n    -v, --verbose       Verbose outputs\n\nARGS:\n    \u003cTARGET\u003e    Target directory\n```\n\n## Benchmarks\n\nUsing [hyperfine](https://github.com/sharkdp/hyperfine) on an Intel i7-8550U with the following 2 test folders,\n\n| Directory | Directory Size | Number of Files |\n| --------- | -------------- | --------------- |\n| 1         | 88MB           | 7262            |\n| 2         | 105MB          | 252             |\n\n| Command                | Directory       | Time                          |\n| ---------------------- | --------------- | ----------------------------- |\n| **lms sync**           | 1               | **179.1 ms** ± 5.1 ms         |\n| rsync -r --delete      | 1               | 717.8 ms ± 41.1 ms            |\n| **lms cp**             | 1               | **117.3 ms** ± 3.6 ms         |\n| cp -r                  | 1               | 283.4 ms ± 13.2 ms            |\n| **lms rm**             | 1               | **147.6 ms** ± 8.6 ms         |\n| rm -rf                 | 1               | 180.7 ms ± 4.3 ms             |\n| ---------------------- | --------------- | ----------------------------- |\n| **lms sync**           | 2               | **101.2 ms** ± 24.8 ms        |\n| rsync -r --delete      | 2               | 442.2 ms ± 19.6 ms            |\n| **lms cp**             | 2               | **33.8 ms** ± 2.8 ms          |\n| cp -r                  | 2               | 143.5 ms ± 18.8 ms            |\n| **lms rm**             | 2               | **10.0 ms** ± 2.8 ms          |\n| rm -rf                 | 2               | 27.4 ms ± 0.8 ms              |\n\nOf course, these benchmarks can be highly dependent on CPU and IO devices.\n\n## Build\n\nFirst [install](https://www.rust-lang.org/tools/install) Rust (recommended using rustup).\n\n```zsh\n$ git clone https://github.com/wchang22/LuminS.git\n$ cd LuminS\n$ cargo build --release\n```\n\n## Install\n\nUsing cargo,\n\n```bash\n$ cargo install lms\n```\n\n## Contributions\n\nSuggestions, issues, and pull requests are welcome!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwchang22%2FLuminS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwchang22%2FLuminS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwchang22%2FLuminS/lists"}