Metadata-Version: 2.4
Name: oxc_debolb
Version: 0.1.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Rust
License-File: LICENSE
Summary: Rust(oxc) + Python(never_v8) deobfuscator for a specific JS obfuscation scheme
Author-email: Neverland <Winkietpk@contractor.net>
License: Apache-2.0
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/neverl805/oxc_debolb
Project-URL: Issues, https://github.com/neverl805/oxc_debolb/issues
Project-URL: Repository, https://github.com/neverl805/oxc_debolb

# oxc_debolb

A JavaScript deobfuscator targeting specific obfuscation schemes (`sbsd`, `akm`), built on top of [oxc](https://github.com/oxc-project/oxc) (Rust) and exposed to Python via [PyO3](https://github.com/PyO3/pyo3) + [maturin](https://github.com/PyO3/maturin).

The Rust core handles parsing, AST traversal, semantic analysis and codegen; the Python layer drives the deobfuscation pipeline and provides a CLI.

## Installation

```bash
pip install oxc_debolb
```

Pre-built wheels are published for:

- **Linux** — x86_64 / aarch64, both manylinux (glibc) and musllinux (Alpine)
- **Windows** — x64
- **macOS** — x86_64 (Intel) / aarch64 (Apple Silicon)

All wheels are built with stable ABI (`abi3-py39`), so a single wheel per platform covers CPython 3.9 – 3.14.

## Quick start

Library:

```python
from oxc_debolb import sbsd_deobfuscate, akm_deobfuscate, format_timing_log

source = open("code.js", "r", encoding="utf-8").read()

# sbsd scheme
cleaned, log = sbsd_deobfuscate(source, verbose=False)

# or akm scheme
cleaned, log = akm_deobfuscate(source, verbose=False)

print(cleaned)
print(format_timing_log(log))
```

CLI:

```bash
# default: code.js -> sbsd_ok.js, scheme=sbsd
python -m oxc_debolb.cli

# specify input / output / scheme
python -m oxc_debolb.cli input.js output.js -s akm

# options
#   -s, --scheme {sbsd,akm}   obfuscation scheme (default: sbsd)
#   -q, --quiet               suppress per-step timing
#   -v, --verbose             verbose progress
```

## Building from source

Requires Rust (stable) and Python ≥ 3.9.

```bash
pip install maturin
maturin develop --release
```

To produce a wheel:

```bash
maturin build --release
```

## License

Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for details.

