cure-cli-0.1.5 is not a library.
cure-cli
cure — the command-line front end of the
cure simplification engine: a
fault-tolerant, semantic-preserving code simplifier/formatter that turns
decompiled code back into something a human would have written. The CLI is
language-agnostic (Java is the backend implemented today) — a new
language registers in LANG_BACKENDS (extensions + pipeline function) and
inherits traversal, parallelism, --check/--diff/--stats, and the
cross-platform batched I/O for free.
|
# class A {
# int m() {
# return foo();
# }
# }
Highlights:
- Fault-tolerant — parse errors never abort a run; broken regions are
preserved verbatim while everything around them is simplified
(
--strictturns them into an error exit for CI). - Directory mode — recursive, parallel (dynamic work queue, threads =
CPU cores × 1.5), mirrors the tree into
<dir>-cure-out/; the 371,674-file OpenJDK corpus (4.70 GB) in ~15 s / ~430 MiB peak RSS on an 18-core laptop (--check), 0 failures. - Cross-platform batch I/O — optional Linux
io_uringbackend (--features io-uring; read syscalls 6,977 → 10 on a 3,483-file trace); macOS/Windows thread pool. Default build: zero runtime dependencies. - Dry runs (
--check), diffs (--diff), stats (--stats/--report), rule toggles (--disable), in-place mode (-w), thread control (-j). - Simplification-quality metrics (
--stats): AST nodes, decision points, max nesting — before vs. after. Untouched by formatting, they separate real simplification from reformatting; per-file classification (structurally simplified / format-only / untouched) surfaces files no rule reached.
Full documentation — rule catalog, verification methodology, performance notes, and the 中文版 — in the repository README.
License: MIT.