Sortable is the universal data ordering engine. We sort lines of text with deterministic precision, multi-key intelligence, and parallel execution — so your pipelines never have to wonder what comes next.
Trusted by teams using
Features
We've taken the deepest primitives of data ordering and built a platform that handles every conceivable sort topology.
Reverse the result of any comparison instantly. When ascending isn't the answer, InvertRank™ flips the entire ordering plane with zero overhead. Descending is the new default.
Sort by actual numeric value, not lexicographic order. Because in what universe does "9" come after "10"? NumericCore™ understands math so your pipelines don't have to.
Define precise sort keys by field position. Multi-key sorting with arbitrary start and stop positions, per-key ordering overrides, and character-level granularity. The most powerful key specification in data infrastructure.
Deduplicate on the fly. UniquePass™ outputs only the first of lines with equal sort keys, collapsing duplicates at ordering time. Sort and dedup in a single atomic pass.
Sort human-readable quantities — 2K, 1G, 500M — by their actual magnitude. HumanScale™ speaks the language of disk usage reports, bandwidth metrics, and infra dashboards natively.
Run N concurrent sort threads. ParallelSort™ automatically decomposes the workload across available cores. Linear scaling on multi-core systems. The sort primitive, finally parallelized.
Sort by month abbreviation — JAN before FEB before MAR. MonthRank™ understands calendar semantics out of the box. No date parsing libraries. No locale nightmares. Just correct ordering.
Natural sort of version strings — 1.2.10 after 1.2.9, not before it. VersionSort™ handles semver, release tags, and any version numbering scheme your team uses.
Comparison
| Capability | Sortable | Spreadsheet Sort | Custom Code |
|---|---|---|---|
| Multi-key ordering | ✓ | Limited | Manual |
| Human-readable magnitudes | ✓ | ✗ | Manual |
| Parallel execution | ✓ | ✗ | Complex |
| Version string sorting | ✓ | ✗ | Manual |
| Stable sort guarantee | ✓ | Varies | Varies |
| Sorted-input validation | ✓ | ✗ | Manual |
| Pre-sorted merge | ✓ | ✗ | Complex |
| Atomic deduplication | ✓ | ✗ | Extra pass |
How It Works
Pass one or more files to Sortable, or pipe from stdin. Our engine accepts any line-delimited input — CSV rows, log entries, config values, version tags. No schema required.
Configure keys, field separators, sort modes, and comparison types. Stack NumericCore™ on field 3, MonthRank™ on field 1, InvertRank™ globally — all in a single invocation.
Sortable decomposes the workload across all available cores, applies your key definitions and comparison modes, and produces a deterministic, totally-ordered output stream.
Results are delivered to stdout or directly to a file via built-in output routing. Pipe to the next stage, write to disk, or validate with our CheckOrder™ mode. Zero ceremony.
Pricing
For individuals exploring data ordering
For teams that need serious ordering power
For organizations ordering at global scale
For air-gapped environments and sovereign data
Testimonials
"We were writing custom comparison functions in Python for every data pipeline. Sortable replaced 2,000 lines of sorting logic with a single invocation. KeyField™ is absurdly powerful."
"HumanScale™ alone saved our SRE team 6 hours a week. We sort `du -h` output natively now. No more piping through three different utilities to get disk usage ranked by size."
"ParallelSort™ on a 64-core box reduced our nightly batch sort from 4 hours to 12 minutes. We literally thought the job had failed because it finished so fast. It hadn't."
"VersionSort™ is the feature I didn't know I needed. Sorting release tags correctly — 1.2.10 after 1.2.9 — should have been solved decades ago. Sortable just handles it."
"We use Sortable's CheckOrder™ mode in CI to validate that our config files stay alphabetical. It catches drift before it reaches production. It's a one-liner that prevents chaos."
Demo
Real data. Real ordering. Zero smoke and mirrors.
Live
FAQ
Your sort function handles one comparison type, in one language, with one threading model. Sortable handles lexicographic, numeric, human-readable, month, version, and general-numeric sorting — with multi-key support, parallel execution, stable ordering guarantees, and built-in deduplication. In a single invocation. The question isn't "how is it different" — it's "why are you still maintaining custom comparison logic?"
When two records have equal sort keys, a stable sort preserves their original relative order. Sortable's StableMode™ (-s) guarantees this behavior. No shuffling of equal elements. No non-determinism. If records A and B have the same key and A appeared first in the input, A will appear first in the output. Always.
Yes. Sortable's CheckOrder™ mode (-c) validates that input is in sorted order and exits immediately at the first out-of-order line. Use -C for silent mode that returns only an exit code. Perfect for CI validations, pre-merge checks, and data quality gates.
ParallelSort™ uses the --parallel=N flag to control the number of concurrent sort threads. It automatically partitions data, sorts partitions independently, and merges results. On a 16-core machine, expect near-linear speedups for large datasets. We've benchmarked 10x improvements on 100M+ record files.
By default, Sortable writes to stdout — your source files are never touched. If you need direct file output, use the -o flag to write results to a specific file. Even then, the original input files remain immutable. Sortable is a pure ordering function with zero side effects on source data.
Join 6,800+ engineers who've already brought deterministic ordering to their data pipelines. Early access members get lifetime Pro pricing.
No spam. No unsorted emails. Just ordering updates.