I'm here to get some feedback and gauge interest in this C++ library. A brief rundown:
Azuti (ah-ZOO-tee) is a W3C standards-compliant library written in modern C++17/20.
It was originally built as the “Model” for a vector drawing application (SaviDraw), where it powered SVG-based document structures in an MVVM architecture.
Azuti is a made up namespace identifier that doesn't really mean anything.
Standards coverage (as of 2025 living specs)
DOM 4 – ~98% implemented.
Selectors 3 – basic functions (stubs for namespaces & pseudo-elements).
CSSDOM 2 Rules – subset for SVG (extensible for general CSS).
CSS Object Model.
CSS Syntax Module Level 3.
Geometry Level 1 – full coverage.
SVG 2 – ~50% (features needed for SaviDraw).
HTML – currently a stub, but expandable; elements without a corresponding C++ class are instantiated as generic Element nodes with attributes preserved.
Note: I'm in the process of updating the core DOM 4 mutation and event algorithms to support shadow trees.
Key design details
Written in modern C++ (17/20)
Statically-linked: takes advantage of the standard library, no runtime dependencies.
No naked pointers: all ownership is expressed through smart pointers.
Tested in a production application (SaviDraw).
Style resolution fully follows W3C rules (inheritance, scoping, cascading, etc.).
Includes a scoping undo manager based on the original W3C spec. Nested transactions are supported—beyond the spec).
Uses libxml2's SAX interface to parse text input.
Uses the Eigen library for the linear algebra calculations on the SVG end.
Potential uses
Standards-compliant XML/DOM library.
SVG / HTML manipulation and property resolution for the back-end.
Basis for application frameworks requiring DOM + CSS models.
Provides the document manipulation power of a web browser without all the overhead of a web browser.
Business model (early thoughts)
Entry tier: binary + header licensing.
Upper tiers: potential strategic partnerships for further development.
An open-source licensing for commercial use is a possibility.
As I mentioned above, Azuti has been real-world tested in an SVG-based vector drawing application. In the M-V-VM architecture, Azuti was the MODEL section. The application interacted with Azuti strictly through the DOM 4 API: mutation observers, events, undo manager, etc.
I don't have any links to post yet, it's not vaporware, but I will post the contents of a few header files. I want to know if there would be any interest in commercial licensing of this library?