GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - prometheus-lua/Prometheus: Lua Obfuscator written in pure Lua

BranchesTags
Open more actions menu

Latest commit

 

History

531 Commits
531 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
assets/readme
assets/readme
 
 
benchmarks
benchmarks
 
 
doc
doc
 
 
scripts
scripts
 
 
src
src
 
 
tests
tests
 
 
web
web
 
 
.dockerignore
.dockerignore
 
 
.editorconfig
.editorconfig
 
 
.gitattributes
.gitattributes
 
 
.gitbook.yaml
.gitbook.yaml
 
 
.gitignore
.gitignore
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
Dockerfile
Dockerfile
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
benchmark.lua
benchmark.lua
 
 
cli.lua
cli.lua
 
 
docker-test-runner.lua
docker-test-runner.lua
 
 
install.sh
install.sh
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
pnpm-lock.yaml
pnpm-lock.yaml
 
 
pnpm-workspace.yaml
pnpm-workspace.yaml
 
 
prometheus-lua
prometheus-lua
 
 
prometheus-main.lua
prometheus-main.lua
 
 

Repository files navigation

Typing SVG
Open Prometheus Playground Tests GitHub stars Discord server

Prometheus obfuscation process preview

Prometheus is a Lua obfuscator written in pure Lua.

It applies a range of AST-based transformations to make source code significantly harder to read, analyze, and reverse engineer.
These include register VM virtualization, control-flow flattening, constant encryption, and other Lua-specific obfuscation strategies.

The project was inspired by the excellent javascript-obfuscator.

Currently, Prometheus supports:

  • Lua 5.1
  • LuaU (basic support is available, but still not fully finished)

See Limitations for compatibility details.


Quick Start

Try the browser version first:

Open Prometheus Playground

Install CLI (Linux/macOS)

Install latest release with one command:

curl -fsSL https://raw.githubusercontent.com/prometheus-lua/Prometheus/master/install.sh | sh

Then use the CLI directly:

prometheus-lua --version
prometheus-lua --preset Medium ./your_file.lua

The release bundle includes a Lua runtime, so no separate Lua install is required for the packaged CLI.

To update to the latest release:

prometheus-lua update

To uninstall:

rm -f ~/.local/bin/prometheus-lua && rm -rf ~/.local/share/prometheus-lua

Local source usage

git clone https://github.com/prometheus-lua/Prometheus.git
cd Prometheus
lua cli.lua --preset Medium ./your_file.lua

Documentation

You can find the full documentation, including the getting started guide, here:

Documentation

Contribution guidelines: CONTRIBUTING.md


Requirements

Packaged CLI releases include a bundled Lua runtime. For source usage, Prometheus requires LuaJIT or Lua 5.1+.

Lua 5.1 binaries can be downloaded here:
https://sourceforge.net/projects/luabinaries/files/5.1.5/Tools%20Executables/


Example

Input

-- input.lua
print("Hello, World!");

Obfuscated output

-- input.obfuscated.lua
return(function(...)local L={"afT6mf1V","/7mJXsuvmE1c/fT3";"tn1ZSn6=","37ghSJM=";"WqermfWAWuuZpb3XX7M=","tqXGSJ3u","XQXpL9x21dxAWJa//p==","SrM=";"3q+5SJM=","/D==";"t7XUt0p=";"mIeOmIx9";"LdgrBfWdWuNABsb+KJxj","SJWJ4dahKsebW7t+KQv=","/cDu3AvP/D==";"Llv7uD==","tJWhFfTE";"TQ43ctIuy9HIop==","mEu93p==";"WJax1sXEXEaxWuxGt6==","t0gPSEp=",...
-- remaining obfuscated output omitted

For more advanced use cases, configuration, and presets, see the documentation.


Tests

The test suite runs existing cases on Lua 5.1 and Luau, plus the adapted official Lua 5.1 suite on Lua 5.1, inside Docker:

./scripts/run-tests.sh           # Run all tests (default: 10 iterations)
./scripts/run-tests.sh -b        # Build image and run tests
./scripts/run-tests.sh -n 5      # Run with 5 iterations
./scripts/run-tests.sh -c config.lua  # Use a custom config
./scripts/run-tests.sh -v        # Verbose output
./scripts/run-tests.sh --suite upstream --baseline-only  # Verify official originals
./scripts/run-tests.sh --case lua51/closure.lua --preset Cff --seed 4 -n 1

Community

Prometheus has an official Discord server:

Join Discord


License and Commercial Use

Prometheus is licensed under the Prometheus License, a modified MIT-style license.

You are free to use, modify, and distribute this software, including for commercial purposes, under the following conditions:

  • Any commercial product, wrapper, or service (including SaaS or hosted solutions) that uses or integrates Prometheus must include clear attribution to:
Based on Prometheus by Elias Oelschner, https://github.com/prometheus-lua/Prometheus
  • The attribution must be visible in the product’s:
    • UI
    • documentation
    • public website
  • The obfuscated output files generated by Prometheus do not need to include any license or copyright notice.
  • Derivative works and public forks must also include a statement in their README noting that they are based on Prometheus.

Full license text: Prometheus License


About

Lua Obfuscator written in pure Lua

prometheus-lua.github.io/Prometheus/

Topics

lualua51luajitluauminificationobfuscationobfuscator

Resources

Readme
License

Contributing

Contributing
Activity
Custom properties

Stars

537 stars

Watchers

13 watching

Forks

243 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.