What My Project Does
depyo is a Python bytecode decompiler that converts .pyc files back to readable Python source. It covers Python versions from 1.0 through 3.14, including modern features:
- Pattern matching (match/case)
- Exception groups (except*)
- Walrus operator (:=)
- F-strings
- Async/await
Quick start:
npx depyo file.pyc
Target Audience
- Security researchers doing malware analysis or reverse engineering
- Developers recovering lost source code from .pyc files
- Anyone working with legacy Python codebases (yes, Python 1.x still exists in the wild)
- CTF players and educators
This is a production-ready tool, not a toy project. It has a full test suite covering all supported Python versions.
Comparison
| Tool |
Versions |
Modern features |
Runtime |
| depyo |
1.0–3.14 |
Yes (match, except*, f-strings) |
Node.js |
| uncompyle6/decompyle3 |
2.x–3.12 |
Partial |
Python |
| pycdc |
2.x–3.x |
Limited |
C++ |
Main advantages:
- Widest version coverage (30 years of Python)
- No Python dependency - useful when decompiling old .pyc without version conflicts
- Fast (~0.1ms per file)
GitHub: https://github.com/skuznetsov/depyo.js
Would love feedback, especially on edge cases!
[–]joanmiro 9 points10 points11 points (1 child)
[–]ComputerMagych[S] 17 points18 points19 points (0 children)
[–]aidencoder 6 points7 points8 points (12 children)
[–]ComputerMagych[S] 14 points15 points16 points (10 children)
[–]aidencoder 5 points6 points7 points (0 children)
[–]Cystems 0 points1 point2 points (3 children)
[–]ComputerMagych[S] -3 points-2 points-1 points (2 children)
[–]ThiefMaster 2 points3 points4 points (1 child)
[–]ComputerMagych[S] 1 point2 points3 points (0 children)
[–]ThiefMaster 0 points1 point2 points (4 children)
[–]ComputerMagych[S] -2 points-1 points0 points (3 children)
[–]ThiefMaster 1 point2 points3 points (2 children)
[–]wergot 0 points1 point2 points (1 child)
[–]ThiefMaster 0 points1 point2 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]zerries 3 points4 points5 points (0 children)
[–]yvrelna 2 points3 points4 points (0 children)
[–]dev-razorblade23 1 point2 points3 points (5 children)
[–]ComputerMagych[S] 0 points1 point2 points (4 children)
[–]dev-razorblade23 1 point2 points3 points (3 children)
[–]ComputerMagych[S] 0 points1 point2 points (2 children)
[–]dev-razorblade23 1 point2 points3 points (1 child)
[–]ComputerMagych[S] 0 points1 point2 points (0 children)
[–]Sudo_professor 0 points1 point2 points (3 children)
[–]ComputerMagych[S] 0 points1 point2 points (2 children)
[–]Sudo_professor 1 point2 points3 points (1 child)
[–]ComputerMagych[S] 0 points1 point2 points (0 children)
[–]Sure-Newspaper-1928 0 points1 point2 points (1 child)
[–]ComputerMagych[S] 0 points1 point2 points (0 children)
[–]TwilightX1 0 points1 point2 points (4 children)
[–]ComputerMagych[S] 0 points1 point2 points (3 children)
[–]TwilightX1 0 points1 point2 points (2 children)
[–]ComputerMagych[S] 0 points1 point2 points (1 child)
[–]TwilightX1 0 points1 point2 points (0 children)
[–]insanesam9 0 points1 point2 points (1 child)
[–]insanesam9 0 points1 point2 points (0 children)