# QuadletLens
QuadletLens is a Rust library for parsing, modeling, validating, and rendering Podman Quadlet files across supported Podman versions.
It combines a source-aware Quadlet document model with a data-driven capability catalogue so callers can answer not only “is this valid Quadlet?” but also “for which Podman and systemd environments is this valid?”
## Goals
- Parse all supported Quadlet unit types and their shared systemd sections.
- Preserve comments, ordering, repeated keys, continuations, specifiers, and unknown fields where practical.
- Expose a typed native Quadlet model without losing the source document.
- Render preservation-oriented and deterministic canonical output.
- Validate against explicit Podman version ranges and relevant systemd capabilities.
- Describe native support, deprecation, removal, known bugs, and available Podman-argument fallbacks.
- Model relationships between multiple Quadlet files.
- Attach evidence and tests to every compatibility claim.
## Non-goals
- Running or installing Quadlet files
- Reimplementing Podman or systemd
- Parsing arbitrary generated systemd service files as Quadlet
- Converting Compose or Kubernetes directly to Quadlet
- Defining BoxFerry's cross-format conversion policy
Cross-format conversion belongs to [BoxFerry](https://github.com/Strukturpiloten/boxferry). Compose handling belongs to [ComposeLens](https://github.com/Strukturpiloten/compose-lens).
## Planned processing levels
```text
source text
→ loss-aware unit document
→ typed Quadlet document set
→ dependency graph
→ target-version validation
→ rendered Quadlet files
```
## Documentation
- [Documentation index](docs/README.md)
- [Software architecture](docs/architecture.md)
- [Native typed model](docs/typed-model.md)
- [Native coverage](docs/coverage.md)
- [Programmatic generation](docs/generation.md)
- [Target project structure](docs/project-structure.md)
- [Capability model](docs/capability-model.md)
- [Podman generator matrix](docs/generator-matrix.md)
- [Testing strategy](docs/testing.md)
- [Real-world Quadlet corpus](docs/real-world-quadlet-corpus.md)
- [Development environment](docs/development-environment.md)
- [API stability policy](docs/api-stability.md)
- [0.1.13 release notes](docs/releases/0.1.13.md) — boundary tests, regression guards, and local developer workflow
- [0.1.12 release notes](docs/releases/0.1.12.md) — native Image, Volume, and Build coverage with 20-release evidence
- [0.1.11 release notes](docs/releases/0.1.11.md)
- [0.1.10 release notes](docs/releases/0.1.10.md)
- [Release policy](docs/releasing.md)
- [Changelog](CHANGELOG.md)
- [Cross-repository implementation plan](docs/implementation-plan.md)
- [Roadmap](docs/roadmap.md)
- [Architecture decisions](docs/decisions/README.md)
Repository-specific guidance for coding agents is in [AGENTS.md](AGENTS.md).
## Origin
QuadletLens is implemented from scratch. It is not a fork of Podlet and does not copy or mechanically translate Podlet source code.
## Stewardship
QuadletLens is created and maintained by [Martin “Becks” Beckert](https://github.com/TheRealBecks) through [Strukturpiloten OHG](https://www.strukturpiloten.de/). The project is part of Strukturpiloten's work on open, maintainable, and portable container infrastructure.
## License
QuadletLens is licensed under the [Mozilla Public License 2.0](LICENSE).