ponyiser eliminates data races by wrapping concurrent code in Pony actor
and behaviour wrappers with reference capability annotations. Pony’s six
reference capabilities (iso, val, ref, box, trn, tag) guarantee
data-race freedom at compile time without locks or runtime checks.
ponyiser reads concurrency patterns from a ponyiser.toml manifest
and generates Pony actor wrappers with the appropriate capability
annotations, targeting any codebase that needs provably safe
concurrency.
ponyiser/ ├── src/ │ ├── main.rs # CLI entry point (clap): init, validate, generate, build, run, info │ ├── lib.rs # Library API │ ├── manifest/mod.rs # ponyiser.toml parser │ ├── codegen/mod.rs # Pony actor wrapper and capability annotation generation │ └── abi/ # Idris2 ABI bridge stubs ├── examples/ # Worked examples ├── verification/ # Proof harnesses ├── container/ # Stapeln container ecosystem └── .machine_readable/ # A2ML metadata
ponyiser.toml manifest
│
┌────▼────┐
│ Manifest │ parse + validate concurrency patterns and capability requirements
│ Parser │
└────┬────┘
│ validated concurrency config
┌────▼────┐
│ Analyser │ infer appropriate Pony reference capabilities (iso/val/ref/box/trn/tag)
└────┬────┘
│ capability-annotated IR
┌────▼────┐
│ Codegen │ emit generated/ponyiser/ (Pony actor wrappers with capability annotations)
└────┬────┘
│ Pony source with guaranteed data-race freedom
┌────▼────┐
│ Ponyc │ compile-time verification of reference capabilities
└─────────┘