# scoder/lupa

Lua in Python

Repository: https://github.com/scoder/lupa
Canonical: https://ross.abutalabs.com/products/lupa
Homepage: http://pypi.python.org/pypi/lupa
Language: Python
License: NOASSERTION
License Family: other
Last push: 2026-07-17T11:48:50+00:00

## Health v2 (maintenance only)
Score: 81/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 93, release rhythm 55, longevity 100
- inputs: {"age_days": 5684, "days_push": 47, "days_rel": 140, "gap_med": 130, "n_releases_24m": 6}
- flags: no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1148, forks 142 (observed 2026-08-28T04:03:46.070183+00:00)

## What it is
Lupa embeds the Lua and LuaJIT runtimes into CPython via Cython, allowing Python code to execute and interoperate with Lua code. It supports multiple isolated Lua runtimes, coroutine bridging, and releases the GIL when calling into Lua.

## Use cases
- embed lua scripts in a python application
- run fast luajit code from python for hot paths
- execute dynamic user-provided lua scripts
- bridge python and lua coroutines
- sandbox a lightweight scripting language inside python

## When to choose
- you need a small, fast embedded scripting runtime in Python
- you want LuaJIT speed for computational code without writing C extensions
- you need bidirectional Python-Lua object iteration and coroutine support

## When to avoid
- you only need to call Python from Lua rather than the reverse
- you need full Lua ecosystem batteries that Python already provides
- you want a pure-Python solution without compiled extensions

## Facets
- artifact type: library
- maturity: active
- function: interpreter, programming-language, concurrency
- domain: programming-languages, developer-tools, performance
- platform: python, cross-platform
- tags: lua, luajit, cython, embedding, scripting, coroutines

## Member repositories
- scoder/lupa (main) score 81

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:46.070183+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:33:51.844962+00:00, confidence not recorded.
  - readme: https://github.com/scoder/lupa (fetched 2026-08-28T04:03:46.070183+00:00, sha ab466beba8d8)
  - homepage: http://pypi.python.org/pypi/lupa (fetched 2026-08-29T12:39:03.178588+00:00, sha 4c99b8eef6d2)
- Data as of 2026-08-30T08:39:29.467469+00:00.
