ejfkdev/ddc
DEX → Java decompiler in Rust — fast, progressive analysis, bilingual CLI
Older snapshot: check the original source for current information.
From the publisher
README & documentation
Source previewRead the project’s overview, installation instructions and usage examples. The original README is the source of truth.
English | 简体中文 [](https://github.com/ejfkdev/ddc/actions/workflows/ci.yml) [](https://github.com/ejfkdev/ddc/releases/latest) [](https://github.com/ejfkdev/ddc/releases) [](https://github.com/ejfkdev/ddc/releases/latest) [](LICENSE) [](https://crates.io/crates/ddc-cli) [](https://crates.io/crates/ddc-cli) [](https://www.npmjs.com/package/@ejfkdev/ddc) [](https://www.npmjs.com/package/@ejfkdev/ddc) [](#install) [](https://github.com/microsoft/winget-pkgs/tree/master/manifests/e/ejfkdev/ddc) ddc decompiles Android DEX bytecode back into readable Java — at real-world app scale, queryable like a database, and quality-first: every one of the 909,689 files it emits across seven real-world APKs passes javac's parse gate, and every file is simplified by an exact, semantic-preserving source pass. benchmark APKs (reqable, Telegram, WhatsApp, weibo, weixin, qq, lark — 0.91M files) passes javac's parse gate with zero syntax errors, and a full-classpath javac battery tracks semantic regressions (7,500 ddc-attributable errors across 0.91M files, down from 11,345). By default every file then goes through cure, an exact semantic-preserving source pass that inlines register-copy chains, folds if/else assignments into ternaries, recovers for-each, and drops dead stores: −15% output lines with identical gate results. Case-variant name pairs (X/Cua vs X/cua) keep separate files instead of the last one silently overwriting. decompiles…
Read the full README ↗ · Preview checked 2026-11-02T15:04:06.240Z
Inside the original README — Document outline
- ddc — DEX → Java decompiler in Rust
- Highlights
- Install
- Usage
- Performance
- Documentation
- Known limitations
- Testing
- License
Headings are captured from the source. Links open the publisher’s document, not a locally hosted copy.
Links from the README
References supplied by the publisher, not independently verified endorsements. Check the destination before downloading files or entering credentials.
Documentation belongs to its respective authors. Reported project/model license: MIT. A listing is not a grant of reuse or training rights. Confirm the document’s own terms at the source.
What this repository does
DEX → Java decompiler in Rust — fast, progressive analysis, bilingual CLI
Repository facts
- Owner
- ejfkdev
- Primary language
- Rust
- Stars
- 302
- Forks
- 52
- Open issues + pull requests
- 1
- License
- MIT
- Archived
- No
- Default branch
- main
- Created
- 2026-09-18T05:07:46.000Z
- Last push
- 2026-09-25T01:18:56.000Z
Topics and intended use
Owner-supplied topics: android, decompiler, dex, reverse-engineering, rust
Review the README for scope, installation, examples and limitations. We do not run repository code or certify it.
Evaluate before installing
Review licensing and dependencies, inspect recent commits and unresolved issues, and test in an isolated environment before production use. Stars and forks alone cannot answer these questions.
Source and freshness
Source: GitHub. Metadata observed 2026-09-25T12:03:43.116Z. Daily imports are snapshots, not real-time monitoring.
Popularity and source listings do not establish security, suitability, licensing rights or benchmark performance.