{"id":17356644,"url":"https://github.com/gsquire/sortpar","last_synced_at":"2025-04-15T00:31:33.151Z","repository":{"id":57667966,"uuid":"143956440","full_name":"gsquire/sortpar","owner":"gsquire","description":"Sort in parallel","archived":false,"fork":false,"pushed_at":"2018-08-30T02:10:31.000Z","size":32,"stargazers_count":12,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T12:38:37.902Z","etag":null,"topics":["rust"],"latest_commit_sha":null,"homepage":null,"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/gsquire.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":"2018-08-08T03:30:28.000Z","updated_at":"2020-10-10T15:17:35.000Z","dependencies_parsed_at":"2022-09-07T15:41:36.065Z","dependency_job_id":null,"html_url":"https://github.com/gsquire/sortpar","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsquire%2Fsortpar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsquire%2Fsortpar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsquire%2Fsortpar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsquire%2Fsortpar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gsquire","download_url":"https://codeload.github.com/gsquire/sortpar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248243187,"owners_count":21071054,"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":["rust"],"created_at":"2024-10-15T18:57:45.770Z","updated_at":"2025-04-15T00:31:32.886Z","avatar_url":"https://github.com/gsquire.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sortpar\n\n`sortpar` is a command line tool that can sort text files in parallel. It does this by taking\nadvantage of the [rayon](https://github.com/rayon-rs/rayon) crate's implementation on slices.\n\n[![Build Status](https://travis-ci.org/gsquire/sortpar.svg?branch=master)](https://travis-ci.org/gsquire/sortpar)\n\n## Installation\n`sortpar` requires a nightly Rust compiler as it is testing out editions. You can install it by\nrunning:\n\n```sh\ncargo +nightly install sortpar\n```\n\nThis will place a binary called `sp` in the `$HOME/.cargo/bin` directory on your machine. You can\nadd that path to the `$PATH` variable to have easier access. There are plans to have more\ninstallation options if the tool becomes useful to those without Rust on their system.\n\n## Usage\nCurrently `sortpar` supports a subset of the options that the Unix sort command does. They can be\nlisted by running:\n\n```sh\nsp --help\n```\n\n## Benchmarks\nIt would be great to have more benchmarks but it is also hard to get an accurate measure across\nmultiple cases. Just to give an idea of the performance at the moment, I sorted Peter Norvig's\n[big text file](https://norvig.com/big.txt). **WARNING**, the link leads to a 6.2MB file.\n\nUsing [hyperfine](https://github.com/sharkdp/hyperfine) I got these results:\n\n```sh\nBenchmark #1: sp big.txt\n\n  Time (mean ± σ):     445.1 ms ±   7.6 ms    [User: 857.0 ms, System: 90.8 ms]\n\n  Range (min … max):   436.6 ms … 457.4 ms\n```\n\n```sh\nBenchmark #1: gsort --parallel=4 big.txt\n\n  Time (mean ± σ):      2.604 s ±  0.023 s    [User: 2.550 s, System: 0.032 s]\n\n  Range (min … max):    2.558 s …  2.632 s\n```\n\nWhy didn't I use `LC_ALL=C` for the GNU sort benchmark? Because it would be unfair to allow GNU\nsort to avoid the overhead of UTF-8 decoding. Perhaps in the future `sortpar` can have an option\nto do this as well.\n\n## Issues\nPlease feel free to open issues if any bugs are encountered or if you would like to add a feature.\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsquire%2Fsortpar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgsquire%2Fsortpar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsquire%2Fsortpar/lists"}