genro-builders

Last Updated: 2026-06-10 Status: 🟢 APPROVATO — allineato al contratto v0.8.0.

Builder system for genro-bag. Construct structured documents — HTML, SVG, CSS, XML dialects — through a fluent, validated Python API.

What ships today

Dialects under genro_builders.contrib, plus the XML core:

Grammar

Module

Notes

HTML5

genro_builders.contrib.html

112 elements from the W3C schema

SVG

genro_builders.contrib.svg

60+ elements

CSS

genro_builders.contrib.css

Level 1 (rules, selectors, vars, @media/@supports/@import)

XSLT

genro_builders.contrib.xslt

XSLT 1.0 stylesheets written pythonically; HTML5 vocabulary mixed in as literal result elements

XML / XSD

genro_builders.xml

XmlBuilderBase shared grammar base + transpiler: an XSD schema becomes a <Dialect>Builder you commit and import (bundled Sitemap and FatturaPA examples)

The live application layer (server-side SPA over websocket, the effective widget collections, script genro-ws-live) lives in its own project: genro-ws-web, built on genro-builders.

Where to start

In-flight design

Documents describing where the project is heading — not yet shipped in code — live in roadmap/ at the repo root:

  • roadmap/architecture-contract.md — the architectural contract (v0.8.0, in vigore dal 2026-06-10).

  • roadmap/component-design.md — the component design record.

  • roadmap/data-architecture.md — the data model (pointers, datapath, segments).

  • roadmap/implementation-roadmap.md — the open-work map.

  • roadmap/documentation-guide.md — how to write docs.

  • roadmap/history.md — project timeline.

Status of the current scaffold

This documentation skeleton describes the framework as it exists today: pull-based binding with read-time registration (DAT.2), data presentation (mask/_wdg, DAT.5), data-elements with their compute slice 1 (DAT.4), the multibuilder handler (HND), and push reactivity Level 0 (handler.live(), RX.1). Features still under design — components (CMP), @slot, the data-element cascade, finer-grained reactivity — live in roadmap/ and will move to docs/ when they ship.