{"id":20688752,"url":"https://github.com/71/lesspass.rs","last_synced_at":"2025-04-22T15:42:35.433Z","repository":{"id":57634797,"uuid":"152891312","full_name":"71/lesspass.rs","owner":"71","description":"Rust library and CLI implementation of the LessPass password generator.","archived":false,"fork":false,"pushed_at":"2025-04-11T22:29:24.000Z","size":71,"stargazers_count":17,"open_issues_count":2,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-18T13:16:08.163Z","etag":null,"topics":["lesspass","password-generator"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/71.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-10-13T16:27:47.000Z","updated_at":"2025-04-11T22:28:26.000Z","dependencies_parsed_at":"2024-02-02T12:29:21.241Z","dependency_job_id":"bdaacfa5-0e0f-4596-a150-c194a0f1be67","html_url":"https://github.com/71/lesspass.rs","commit_stats":{"total_commits":25,"total_committers":6,"mean_commits":4.166666666666667,"dds":0.64,"last_synced_commit":"4aba996dfa429599a5e6b0733b26da45ad035754"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/71%2Flesspass.rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/71%2Flesspass.rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/71%2Flesspass.rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/71%2Flesspass.rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/71","download_url":"https://codeload.github.com/71/lesspass.rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249590084,"owners_count":21296146,"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":["lesspass","password-generator"],"created_at":"2024-11-16T23:06:52.015Z","updated_at":"2025-04-22T15:42:35.422Z","avatar_url":"https://github.com/71.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"lesspass.rs\r\n===========\r\n\r\nAn (unofficial) fully featured Rust client for [LessPass](https://lesspass.com).\r\n\r\nThis client is focused on performances: allocations were avoided wherever possible,\r\nand some parts of the password generation algorithms were sligthly changed to avoid\r\nneedless allocations.\r\n\r\nThe library also supports `no_std` builds, though a few utilities are provided if\r\n`std` is available.\r\n\r\n\r\n## Usage\r\n```\r\nGenerates LessPass-like passwords.\r\n\r\nUSAGE:\r\n    lesspass.exe [FLAGS] [OPTIONS] [ARGS]\r\n\r\nFLAGS:\r\n    -L, --no-lower          Exclude lowercase characters.\r\n    -D, --no-digits         Exclude digits.\r\n    -S, --no-symbols        Exclude symbols.\r\n    -U, --no-upper          Exclude uppercase characters.\r\n    -h, --help              Prints help information\r\n    -E, --return-entropy    Return the entropy instead of generating a password.\r\n        --sha256            Use SHA-256 for password generation.\r\n        --sha384            Use SHA-384 for password generation.\r\n        --sha512            Use SHA-512 for password generation.\r\n    -V, --version           Prints version information\r\n\r\nOPTIONS:\r\n    -c, --counter \u003ccounter\u003e          Arbitrary number used for password generation. [default: 1]\r\n    -i, --iterations \u003citerations\u003e    Number of iterations used for entropy generation. [default: 100000]\r\n    -l, --length \u003clength\u003e            Length of the generated password. [default: 16]\r\n\r\nARGS:\r\n    \u003cwebsite\u003e     Target website.\r\n    \u003clogin\u003e       Username or email address.\r\n    \u003cpassword\u003e    Master password used for fingerprint and password generation.\r\n\r\nEXAMPLES:\r\n    Generate a password:\r\n      lesspass example.org contact@example.org password\r\n\r\n    Generate the fingerprint of a master password:\r\n      lesspass password\r\n\r\n    Generate a 32-characters password using SHA-512:\r\n      echo password | lesspass example.org contact@example.org --sha512 -l 32\r\n\r\n    Generate the entropy of a password, using 10,000 iterations:\r\n      lesspass example.org contact@example.org password -i 10000 -E \u003e entropy.txt\r\n\r\n    Generate an alphanumeric password using the previously saved entropy:\r\n      cat entropy.txt | lesspass -S\r\n\r\n    The two previous examples are equivalent to:\r\n      lesspass example.org contact@example.org password -i 10000 -S\r\n```\r\n\r\n## Benchmarks\r\n\r\nEven though the Python implementation uses hashlib behind the scenes and is therefore\r\npretty fast, this Rust implementation manages to more than triple the speed of execution.\r\n\r\nComparing Python and Rust applications for performance is not very relevant, but\r\nit should at least tell you that this implementation should fit your needs.\r\n\r\nBenchmarks below using [hyperfine](https://github.com/sharkdp/hyperfine):\r\n\r\n#### [lesspass-cli](https://github.com/lesspass/lesspass/tree/master/cli)\r\n```bash\r\n$ hyperfine 'lesspass example.org contact@example.org password -L 32'\r\n\r\nBenchmark 1: lesspass example.org contact@example.org password -L 32\r\n  Time (mean ± σ):     213.0 ms ±   1.1 ms    [User: 0.0 ms, System: 0.0 ms]\r\n  Range (min … max):   211.2 ms … 215.0 ms    13 runs\r\n```\r\n\r\n#### [lesspass.rs](#)\r\n```bash\r\n$ hyperfine 'lesspass example.org contact@example.org password -l 32'\r\n\r\nBenchmark 1: lesspass example.org contact@example.org password -l 32\r\n  Time (mean ± σ):      61.3 ms ±   0.3 ms    [User: 0.7 ms, System: 4.1 ms]\r\n  Range (min … max):    60.8 ms …  62.3 ms    45 runs\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F71%2Flesspass.rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F71%2Flesspass.rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F71%2Flesspass.rs/lists"}