Overview
What the Diagram Maker is and how it works
Hva er diagrammakeren?
Diagram Maker er et tekst-første arkitekturdiagramverktøy basert på Datro DSL en strukturert, validert og kanonisk formatert språk for å beskrive programvaresystemer som data, ikke som bilder.
I stedet for å trekke bokser på et skjerm, skriv en .dtro-Fil. Verktøkkjeden analyserer den, validerer arkitektoniske regler, tvinger WCAG kontrastforhold og gjengir den til SVG, PNG eller interaktiv JSON alt fra en enkelt sannhetskilde.
Skriv, valider og renderes ditt første diagram i løpet av noen minutter.
Hvorfor Datro i stedet for Mermaid eller draw.io?
- Typiserte knopper 23 semantiske typer (
service,database,gateway,queue, ...) genererer automatisk konsistente, formpraktiske diagrammer. - Typiserte kanter 21 semantiske typer (
http,query,publish,grpc, ...) kodere og forme dine forbindelser uten manuelle overskrifter. - Arkitekturbegrensninger Skriv regler som
database!-> externalog validatoren tvinger dem til analysetiden, ikke kontrolltiden. - Kanoniske formatører
datro fmtskriver hver fil om til et deterministisk format; diff viser virkelige endringer, ingen omformattingstemmer. - Import og opprette Splitere store diagrammer med hjelp av
import, namespace aliasing og bruk av Whitelists på flere filer. - WCAG 2.1 barrierefrihet Kontrastforhold kontrolleres automatisk på grunnlag av temapaletten din;
W602blir utløst når du faller under AA. - Maskinlesbar JSON IR hver diagram eksporterer en tapfri JSON IR som kan brukes av enhver verktøykjede, CI-system eller brukerdefiniert renderer.
Hvordan verktøykjeden fungerer
Hver .dtro-fil går gjennom fire faser før den blir et diagram:
- Parsen av rekursiv Lexer + Parser konverterer kildeteksten din til en
DatroIR-Objekt. Det kaster aldri; Alle problemer blir sett på somDiagnostic[]Returnerte med nøyaktige linje/kolonneposisjoner. - Validering 4 pass: strukturell integritet → semantisk begrensningskontroller → Informasjonsinformasjon → WCAG 2.1 kontrast og tilgjengelighet av etikettlengden.
- Eksporter den validerte IR blir konvertert til DOT (Graphviz), Cytoscape.js JSON eller lossfri JSON IR.
- Render DOT-utgivelsen overføres til Graphviz for å generere en pixel nøyaktig SVG eller PNG-utgivelse.
Et fullstendig eksempel
Denne .dtro-filen definerer en betalingsstjeneste med grupper, typede knopper, semantiske kanter, en begrensningsregel, layoutnæring og et WCAG-prøvet fargetema alt i en fil:
#!DATRO 1.0
meta {
title: "Payment Service"
version: "2.0.0"
owner: "payments-team"
sla: "99.95%"
}
group data {
label: "Data Layer"
members: [payments_db, fraud_cache]
}
node api_gw { type: gateway label: "API Gateway" }
node payment_svc { type: service label: "Payment Service" attrs { tech: "nestjs" } }
node payments_db { type: database label: "Payments DB" attrs { tech: "postgres" } }
node fraud_cache { type: cache label: "Fraud Cache" attrs { tech: "redis" } }
node stripe { type: external label: "Stripe" }
edge api_gw -> payment_svc { kind: http label: "POST /charge" }
edge payment_svc -> payments_db { kind: query }
edge payment_svc -> fraud_cache { kind: read }
edge payment_svc -> stripe { kind: http label: "charge API" }
constraint {
id: "no-db-external"
rule: "database !-> external"
message: "Databases must not call external APIs"
severity: error
}
layout { direction: LR algo: dagre }
theme {
palette { gateway: "#FFD0D0" service: "#D0E8FF" database: "#FFE8C0" cache: "#C0FFE8" }
accessibility { min_contrast: AA }
}Prøv det nå
Legg eksemplet ovenfor inn i diagrammaker-editoren og klikk på Valid“. Du kan se en diagnose som er gitt med linjenummer, og du kan gjøre det i SVG med ett klikk.
Sammendrag av funksjoner
Fortsett med quick start for å skrive ditt første diagram, eller hoppe direkte til language reference for full syntax.