# kyren/piccolo

An experimental stackless Lua VM implemented in pure Rust

Repository: https://github.com/kyren/piccolo
Canonical: https://ross.abutalabs.com/products/kyren-piccolo
Language: Rust
License: CC0-1.0
License Family: permissive
Last push: 2025-07-10T20:40:39+00:00

## Health v2 (maintenance only)
Score: 37/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 31, release rhythm 8, longevity 100
- inputs: {"age_days": 3072, "days_push": 419, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2148, forks 101 (observed 2026-08-28T04:06:19.092847+00:00)

## What it is
Piccolo is an experimental stackless Lua interpreter implemented in pure Rust, designed to safely run and sandbox untrusted Lua scripts. It emphasizes memory safety, DoS resilience, and safe Rust-to-Lua API bindings.

## Use cases
- run untrusted Lua scripts safely in a Rust application
- embed a Lua interpreter in Rust with safe bindings
- sandbox scripts with bounded execution time and memory
- interpret Lua code without a C dependency
- bind Rust APIs to Lua user types that survive garbage collection

## When to choose
- you need to execute untrusted Lua scripts with strong sandboxing guarantees
- you want a pure-Rust Lua interpreter with no C dependencies
- you need safe, GC-aware Rust/Lua bindings

## When to avoid
- you need full PUC-Rio Lua compatibility or performance
- you need a stable, production-ready API (pre-1.0 with frequent breakage)
- you need protection against side-channel attacks

## Facets
- artifact type: library
- maturity: experimental
- function: interpreter, programming-language
- domain: programming-languages, developer-tools, security
- platform: rust, cross-platform
- tags: lua-vm, stackless, sandboxing, scripting, garbage-collection, sandbox

## Member repositories
- kyren/piccolo (main) score 37

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:19.092847+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-30T02:51:07.084810+00:00, confidence not recorded.
  - readme: https://github.com/kyren/piccolo (fetched 2026-08-28T04:06:19.092847+00:00, sha ff2328bfb6ee)
  - registry_crates: https://crates.io/api/v1/crates/piccolo (fetched 2026-08-29T10:30:53.999509+00:00, sha edd471ad66bf)
- Data as of 2026-08-30T08:39:29.467469+00:00.
