docuccino / core
The framework-agnostic engine behind Docuccino: document model, canonicalizer, identities, OpenAPI 3.2/3.1 emitters and semantic diff.
Requires
- php: ^8.3
- composer-runtime-api: ^2
- docuccino/attributes: v0.16.0
- nikic/php-parser: ^5
- opis/json-schema: ^2.4
- phpstan/phpdoc-parser: ^2
- psr/container: ^1.1 || ^2.0
- symfony/yaml: ^7.0 || ^8.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-10 08:21:17 UTC
README
The framework-agnostic engine behind Docuccino — the document model, canonicalizer, identities, OpenAPI emitters and semantic diff.
Core compiles an application into a UIR: a Universal Intermediate Representation, an OpenAPI 3.2-shaped JSON document that is deterministic and carries a stable identity and provenance for every operation, schema and parameter. From it, core emits OpenAPI 3.2 and 3.1, validates against the published JSON Schema, and answers what changed between two documents rather than only what the endpoints are.
It has no framework dependency and no static-analysis dependency. Framework adapters consume it —
if you are documenting a Laravel application, you want docuccino/laravel,
which pulls this in for you.
Install
composer require docuccino/core
Usage
Emit a canonical OpenAPI 3.2 document from a built UIR document:
use Docuccino\Core\Emit\EmitOptions; use Docuccino\Core\Emit\OpenApi32Emitter; $json = (new OpenApi32Emitter())->emit($uirDocument, new EmitOptions());
Compare two documents over their identities, and classify what moved:
use Docuccino\Core\Diff\DocumentDiffer; $changes = (new DocumentDiffer())->diff($oldDocument, $newDocument);
Part of Docuccino
| Package | Role |
|---|---|
docuccino/laravel |
The Laravel adapter: provider, config, commands, viewer, integrations. Start here. |
docuccino/core ← you are here |
Framework-agnostic document model, canonicalizer, identities, emitters, diff. |
docuccino/inference-phpstan |
PHPStan + Larastan type inference. Install as a dev dependency. |
docuccino/attributes |
Dependency-free PHP attribute classes. |
Documentation
Full documentation is at docs.docuccino.app. See especially the UIR format overview, spec hosting and writing an extension. The versioned UIR JSON Schema is served at https://spec.docuccino.app/uir/1.0/schema.json.
Issues and contributing
This repository is a read-only subtree split of docuccino/docuccino. Open issues and pull requests on the monorepo — commits pushed here are overwritten. See CONTRIBUTING.md.
License
MIT. See LICENSE.