StartseiteLeitfädenInstant SQL Query Formatter & Minifier
ENESJADEPTFR
Architektur & Praxisleitfaden

SQL Formatter & Minifier Online: Technische Architektur, Lexikalische Analyse & Praxisleitfaden

Structured Query Language (SQL) ist das fundamentale deklarative Fundament moderner relationaler Datenbankmanagementsysteme (RDBMS). Im Entwicklungsalltag erreichen Abfragen Software-Ingenieure und Da

13 Min. Lesezeit
2465 Wörter
Keine Server-Übertragung
Interaktives Tool verfügbar

Führen Sie dieses Tool direkt in Ihrem Browser mit 100 % Client-Datenschutz aus.

Interaktives Tool öffnen

# SQL Formatter & Minifier Online: Technische Architektur, Lexikalische Analyse & Praxisleitfaden

Structured Query Language (SQL) ist das fundamentale deklarative Fundament moderner relationaler Datenbankmanagementsysteme (RDBMS). Im Entwicklungsalltag erreichen Abfragen Software-Ingenieure und Datenbankadministratoren jedoch häufig in unleserlichem Zustand: als einzeilige Logging-Ausgaben moderner Object-Relational Mapper (ORMs wie Prisma, Hibernate, SQLAlchemy, TypeORM), als komprimierte Payloads aus Log-Aggregatoren (Datadog, AWS CloudWatch, Grafana Loki) oder als unformatierte Stored Procedures. Das manuelle Entwirren solcher Abfrage-Strings erhöht die kognitive Belastung, verschleiert Performance-Engpässe und birgt Syntaxrisiken bei Hotfixes.

Ein performanter SQL Formatter online ermöglicht es Entwicklern, SQL Abfragen zu formatieren, SQL-Dialekte zu standardisieren und SQL online kostenlos zu verschönern – ohne lokale Toolchains oder CLI-Installationen. Datenbankabfragen sind jedoch streng vertraulich: Sie bilden Schematopologien und Geschäftslogiken ab und enthalten in WHERE-Bedingungen oft personenbezogene Daten (PII) wie Kundennamen oder Authentifizierungs-Token. Das Übertragen solcher Daten an entfernte Cloud-Dienste stellt ein massives Datenschutzrisiko dar.

Der ToolsAA Instant SQL Query Formatter & Minifier löst dieses Problem durch eine kompromisslose Zero-Knowledge- und Client-Side-Architektur ("use client"). Entwickelt auf Basis von Next.js und Standard-Web-APIs läuft die gesamte lexikalische Tokenisierung, Grammatikanalyse, Einrückung und Minifizierung zu 100 % lokal in der Sandbox Ihres Webbrowsers ab. Kein einziges Byte verlässt Ihr System – absolute Datensouveränität und DSGVO-Konformität bei nativer Ausführungsgeschwindigkeit.


# Umfassender Überblick & Reale Anwendungsfälle

Die Formatierung von SQL-Code ist eine deterministische lexikalische Transformation. Im Gegensatz zu fehleranfälligen Regex-Ersetzungen, die String-Literale, verschachtelte Klammern oder Kommentare beschädigen können, zerlegt ein vollwertiger lexikalischer Tokenizer den Rohtext in semantische Einheiten und baut daraus eine strukturierte Hierarchie auf.

text 26 lines
[ Rohe / Unformatierte SQL-Abfrage ]
               |
               v
+-------------------------------------------------------------+
|        Deterministischer Lexikalischer Tokenizer (DFA)      |
|  - Isoliert Schlüsselwörter, Bezeichner, Literale, Kommentare|
|  - Löst Dialekt-Spezifika auf (MySQL-Backticks, PG $$, etc.)|
+-------------------------------------------------------------+
               |
               v
+-------------------------------------------------------------+
|          Grammatik-Zustandsautomat & Scope-Manager          |
|  - Verfolgt Hauptklauseln (SELECT, FROM, WHERE, GROUP BY...) |
|  - Verwaltet Klammertiefe, Subqueries, CTEs, CASE-Blöcke    |
+-------------------------------------------------------------+
               |
               v
+-------------------------------------------------------------+
|       Kontextueller Einrückungs- & Layout-Synthesizer       |
|  - Konfigurierbare Einrückung (2/4 Spaces, Tabs) & Groß-/   |
|    Kleinschreibung (Casing: Uppercase, Lowercase)           |
|  - Komma-Platzierung (Trailing vs. Leading) & Zeilenumbrüche|
+-------------------------------------------------------------+
               |                               |
               v                               v
[ Strukturierte & Formatierte SQL ] [ Minifizierte Einzeiler-SQL ]

# Zentrale Praxisszenarien in Entwicklung und IT-Betrieb

  • ORM-Query-Deobfuskation: Isoliert tief verschachtelte Sub-Selects und redundante Joins in Rohabfragen von Prisma, Hibernate oder SQLAlchemy vor der Ausführungsanalyse mit EXPLAIN ANALYZE.
  • Forensik bei Produktionsvorfällen: Formatiert monolithische Slow-Query-Strings aus Datadog- oder PostgreSQL-Logs und deckt Tabellen-Locks und kartesische Produkte bei Sev-1-Ausfällen sofort auf.
  • Schema-Migrationsaudits: Standardisiert Einrückungen in DDL-Migrationsskripten (ALTER TABLE, Flyway, Liquibase) und verhindert störende Whitespace-Diffs in Git-Reviews.
  • Analytics & CTE-Optimierung: Formatiert komplexe Common Table Expressions (WITH-Klauseln) und Fensterfunktionen (ROW_NUMBER() OVER (...)) in BigQuery, Snowflake und PostgreSQL übersichtlich.
  • Sicherheitsaudits & SQL-Injection-Analyse: Zerlegt dynamisch konkatenierte SQL-Statements bei Sicherheitsprüfungen, um ungefilterte Parameter und Syntaxschwachstellen offenzulegen.

# Warum clientseitige Verarbeitung für Datenschutz und DSGVO unverhandelbar ist

Klassische Online-Formatierer übertragen SQL-Abfragen per HTTP-POST an entfernte Server. Dies birgt erhebliche Risiken: Schemastrukturen und Geschäftslogik geraten auf fremde Server, und Kundendaten in WHERE-Bedingungen werden in Cloud-Proxy-Logs persistiert. Dies verletzt Compliance-Vorgaben nach DSGVO (Art. 32), SOC 2, HIPAA und PCI-DSS.

ToolsAA setzt auf ein striktes Zero-Server-Verarbeitungsmodell: Wenn Sie mit ToolsAA SQL online formatieren, laufen alle Berechnungen exklusiv in der JavaScript-Sandbox Ihres Browsers. Kein einziges Datenpaket verlässt Ihr Gerät.


# Technische Architektur & Funktionsweise unter der Haube

Eine performante SQL-Formatierung erfordert einen deterministischen lexikalischen Parser, der die Standards nach ISO/IEC 9075 (ANSI SQL:2016) befolgt und dialektspezifische Grammatikerweiterungen auflöst.

# 1. Deterministische lexikalische Tokenisierung (DFA-Lexer)

Die Engine analysiert rohes SQL über einen deterministischen endlichen Automaten (Deterministic Finite Automaton, DFA), der Zeichen sequenziell in semantische Tokens überführt – ohne das Risiko von Catastrophic Backtracking:

  • String-Literale: Behandelt einfache Anführungszeichen und Maskierungen ('O''Reilly') deterministisch, ohne Gültigkeitsgrenzen zu verletzen.
  • Kommentarklassifizierung: Isoliert einzeilige (--, #) und mehrzeilige Kommentare (/ ... /), behält sie bei der Formatierung bei und entfernt sie bei der Minifizierung sauber.
  • Operatoren: Erkennt Vergleichsoperatoren (<=, >=, <>, !=) sowie dialektspezifische Operatoren (::, ->, ->>).

# 2. Auflösung dialektspezifischer Syntaxbesonderheiten

Relationale Datenbanksysteme besitzen herstellerspezifische Erweiterungen:

  • PostgreSQL: Unterstützt Dollar-Quoted Strings ($$...$$, $tag$...$tag$) in Funktionen, Type-Casts (::timestamp) und JSONB-Operatoren (@>, ?|).
  • MySQL & MariaDB: Erkennt Backticks für Bezeichner (`` order `), Hash-Kommentare (#) und Optimizer-Hints (/+ BKA(t1) /`).
  • SQLite: Unterstützt eckige Klammern ([table], [column]) und systemspezifische PRAGMA-Direktiven.
  • ANSI SQL: Verarbeitet standardisierte doppelte Anführungszeichen ("identifier") für Bezeichner.

# 3. Rekursiver Einrückungs-Zustandsautomat & Scope-Tracking

Tokens durchlaufen eine Layout-Engine, die Einrückungstiefen anhand der grammatikalischen Hierarchie ermittelt:

  • Klauselgrenzen: Schlüsselwörter (SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, WITH, INSERT INTO, UPDATE, SET, DELETE FROM, UNION) setzen die Zeileneinrückung zurück.
  • Join-Ausrichtung: Joins (LEFT JOIN, INNER JOIN) und Verknüpfungskriterien (ON, USING) rücken relativ zur übergeordneten FROM-Klausel ein.
  • Klammer-Scopes: Unterabfragen (IN (SELECT ...), EXISTS (...)) verwalten Stack-Frames für tiefere Einrückungen, während skalare Wertelisten kompakt in einer Zeile bleiben.
  • CASE-Konstrukte: Verschachtelte CASE ... WHEN ... THEN ... ELSE ... END-Blöcke erhalten eigene Einrückungsebenen.

# 4. Browser-Web-APIs, Web Crypto & WASM-Architektur

ToolsAA nutzt moderne Web-APIs für maximale Effizienz im Browser:

  • Non-Blocking UI Scheduling: React 18 useDeferredValue entkoppelt Benutzereingaben vom Lexing, wodurch die Benutzeroberfläche mit 60 FPS reaktionsfähig bleibt.
  • FileReader API: Lädt lokale .sql- und .ddl-Dateien direkt in den Arbeitsspeicher – ohne Netzwerkübertragung.
  • Web Crypto API: Query-Deduplizierung und lokales Caching nutzen window.crypto.subtle.digest("SHA-256") für sichere Hashes direkt im RAM.
  • Web Worker & WebAssembly (WASM): Bei monolithischen DDL-Dumps mit über 50.000 Zeilen wird das Parsing in Hintergrund-Web-Worker mit WASM ausgelagert, um UI-Blockaden zu verhindern.
  • HTML5 Canvas: Vorschauen für Ausführungsbäume und AST-Graphen werden direkt über ein HTML5-<canvas> gerendert, was DOM-Reflow-Overhead vermeidet.

# Schritt-für-Schritt-Praxisanleitung

# Schritt 1: Rohe SQL-Abfrage einfügen oder Datei importieren

  • Direktes Einfügen: Fügen Sie Ihre SQL-Abfrage in das linke Editor-Panel ein. Zeilen-, Wort- und Zeichenzähler aktualisieren sich in Echtzeit.
  • Lokaler Datei-Upload: Importieren Sie lokale .sql- oder .ddl-Dateien über die clientseitige FileReader-Schnittstelle ohne Serverkontakt.
  • Vorlagen-Benchmarks: Nutzen Sie vordefinierte Vorlagen (CTEs, Joins, PostgreSQL JSONB, SQLite Subqueries), um Formatierungen sofort zu testen.

# Schritt 2: SQL-Dialekt auswählen

  • Wählen Sie die Ziel-Engine: ANSI SQL, MySQL, PostgreSQL oder SQLite, um dialektspezifische Lexer-Regeln anzuwenden.

# Schritt 3: Formatierungsparameter konfigurieren

  • Einrückung: Wählen Sie zwischen 2 Leerzeichen (kompakt für tiefe Schachtelungen), 4 Leerzeichen (Enterprise-Standard) oder Tabs.
  • Groß-/Kleinschreibung (Casing): Vereinheitlichen Sie Schlüsselwörter (SELECT, WHERE) und Funktionen (COUNT, COALESCE) zu Großbuchstaben (Uppercase), Kleinbuchstaben (Lowercase) oder Original beibehalten.
  • Komma-Platzierung: Wechseln Sie zwischen Nachgestelltem Komma (Trailing) und Vorangestelltem Komma (Leading Comma / Comma-First).

# Schritt 4: Minifizierungs-Modus aktivieren

  • Klicken Sie auf Minify, um Kommentare zu entfernen, redundante Whitespaces zu eliminieren und Queries in kompakte Einzeiler für Produktions-Payloads umzuwandeln.

# Schritt 5: Exportieren & Einbetten in Quellcode

  • 1-Klick-Kopieren & Download: Kopieren Sie die formatierte Abfrage in die Zwischenablage oder laden Sie sie als .sql-Datei herunter.
  • Code-Wrapper: Exportieren Sie Queries formatiert als Template-Strings für TypeScript / JavaScript, Python, PHP, Java oder Go.

# Produktionsreife Code-Implementierungen

# 1. Moderne TypeScript-Implementierung

Ein typisierter SQL-Tokenizer, Formatierer und Minifizierer für Browser- und Node.js-Laufzeitumgebungen:

typescript 37 lines
export interface FormatterConfig {
  indent?: string;
  uppercase?: boolean;
  leadingComma?: boolean;
}

const CLAUSES = new Set(["SELECT", "FROM", "WHERE", "GROUP BY", "HAVING", "ORDER BY", "LIMIT"]);

// Formatiert eine SQL-Abfrage mit hierarchischer Einrückung
export function formatSql(sql: string, cfg: FormatterConfig = {}): string {
  const indent = cfg.indent ?? "  ";
  const up = cfg.uppercase ?? true;
  const tokens = sql.match(/('(?:''|[^'])*'|--[^\n]*|\/\*[\s\S]*?\*\/|<=|>=|!=|<>|[(),;]|\b\w+\b|\S)/g) || [];
  let out = "", depth = 0;

  for (let i = 0; i < tokens.length; i++) {
    const tok = tokens[i], upper = tok.toUpperCase();
    if (CLAUSES.has(upper)) {
      depth = Math.max(0, depth - 1);
      out += `\n${indent.repeat(depth)}${up ? upper : tok}\n${indent.repeat(++depth)}`;
    } else if (tok === ",") {
      out += cfg.leadingComma ? `\n${indent.repeat(depth)}, ` : `,\n${indent.repeat(depth)}`;
    } else if (tok === "(") {
      out += " ("; depth++;
    } else if (tok === ")") {
      depth = Math.max(0, depth - 1); out += ")";
    } else {
      out += ` ${up && ["AND", "OR", "ON", "AS"].includes(upper) ? upper : tok}`;
    }
  }
  return out.trim();
}

// Minifiziert eine SQL-Abfrage zu einem kompakten Einzeiler
export function minifySql(sql: string): string {
  return sql.replace(/\/\*[\s\S]*?\*\/|--[^\n]*/g, "").replace(/\s+/g, " ").replace(/\s*([(),;])\s*/g, "$1").trim();
}

# 2. Moderne Python 3.11+ Implementierung

Eine objektorientierte, typisierte Implementierung für Automatisierungsskripte und Pre-Commit-Hooks:

python 30 lines
import re

class SqlFormatter:
    CLAUSES = {"SELECT", "FROM", "WHERE", "GROUP BY", "HAVING", "ORDER BY", "LIMIT"}
    TOKEN_RE = re.compile(r"('(?:''|[^'])*'|--[^\n]*|/\*[\s\S]*?\*/|<=|>=|!=|<>|[(),;]|\b\w+\b|\S)")

    @classmethod
    def format(cls, sql: str, indent: str = "  ", uppercase: bool = True, leading_comma: bool = False) -> str:
        tokens, out, depth = cls.TOKEN_RE.findall(sql), [], 0
        for tok in tokens:
            upper = tok.upper()
            if upper in cls.CLAUSES:
                depth = max(0, depth - 1)
                out.append(f"\n{indent * depth}{upper if uppercase else tok}\n{indent * (depth + 1)}")
                depth += 1
            elif tok == ",":
                out.append(f"\n{indent * depth}, " if leading_comma else f",\n{indent * depth}")
            elif tok == "(":
                out.append(" ("); depth += 1
            elif tok == ")":
                depth = max(0, depth - 1); out.append(")")
            else:
                kw = upper if uppercase and upper in {"AND", "OR", "ON", "AS"} else tok
                out.append(f" {kw}")
        return re.sub(r"\n\s*\n", "\n", "".join(out).strip())

    @staticmethod
    def minify(sql: str) -> str:
        s = re.sub(r"/\*[\s\S]*?\*/|--[^\n]*", "", sql)
        return re.sub(r"\s*([(),;])\s*", r"\1", re.sub(r"\s+", " ", s)).strip()

# Typische Fallstricke, Edge Cases & Fehlerbehebung

# 1. Verschachtelte Dollar-Quotes in PostgreSQL PL/pgSQL

Stored Procedures und Funktionsdefinitionen mit Dollar-Quotes ($$...$$ oder $func$...$func$) scheitern in Standard-Formatierern, wenn internes SQL als übergeordnete Klausel geparst wird. ToolsAA isoliert Dollar-Tags als unveränderliche Literal-Grenzen und bewahrt prozedurale Codeblöcke exakt im Originalzustand.

# 2. MySQL Bedingte Kommentare & Optimizer Hints

Das Minifizieren von Abfragen kann unbeabsichtigt MySQL-Versionskommentare (/!50700 ... /) oder Planungs-Hints (/+ INDEX(...) /) entfernen. ToolsAA schützt Kommentare mit den Präfixen /! oder /+ während der Minifizierung, sodass Optimierungsdirektiven erhalten bleiben.

# 3. Vorangestellte vs. nachgestellte Kommas (Git-Diff-Konflikte)

Das Hinzufügen von Spalten am Ende einer SELECT-Projektionsliste verursacht bei nachgestellten Kommas Diff-Änderungen über zwei Zeilen. Der Leading-Comma-Modus (SELECT id \n , name \n , email) isoliert Erweiterungen auf genau eine Zeile, verhindert Merge-Konflikte und hält den git blame-Verlauf sauber.

# 4. Arithmetische Ausdrücke vs. Subquery-Klammern

Skalare mathematische Ausdrücke wie (a + b) * c dürfen niemals auf mehrere Zeilen umgebrochen werden. Der Zustandsautomat von ToolsAA unterscheidet arithmetische Klammern präzise von echten Unterabfragen und erhält kompakte mathematische Ausdrücke in einer Zeile.

# 5. Speicher- und Prozessorlast bei monolithischen DDL-Dumps

Das Einfügen sehr großer Schemadateien kann Browser-Tabs überlasten. ToolsAA nutzt React 18 useDeferredValue und eine lineare Tokenisierung in linearen Speicherblöcken, um Blockaden des Haupt-Threads und Speicherüberläufe zuverlässig zu verhindern.

# 6. Exakte Erhaltung von Escape-Sequenzen in Literalen

String-Konstanten mit Maskierungszeichen (\', \n) werden von ungenauen Formatierern oft beschädigt. ToolsAA behandelt String-Literale als unveränderliche Token, wodurch Nutzdaten und Escapes exakt wie eingegeben erhalten bleiben.


# Ausführlicher FAQ-Bereich (Häufig gestellte Fragen)

# F1: Werden meine Datenbankschemata oder vertraulichen Abfragedaten an externe Server übertragen?

Antwort: Nein. ToolsAA arbeitet zu 100 % clientseitig ("use client"). Alle Phasen der lexikalischen Tokenisierung, Einrückung und Minifizierung laufen lokal in der JavaScript-Engine Ihres Browsers. Es gibt keine Backend-APIs und kein Tracking. Sie können Abfragen offline mit voller DSGVO-Konformität formatieren.

# F2: Worin unterscheidet sich dieser clientseitige Formatter von klassischen Online-Beautifiern?

Antwort: Herkömmliche Tools senden Abfragen per HTTP-POST an zentrale Server. Das verursacht Latenzen und birgt Risiken für Schema- und PII-Leaks in Server-Logs. ToolsAA formatiert ohne Serverkontakt lokal im Browser – mit nativer Desktop-Geschwindigkeit und vollständiger Datensouveränität.

# F3: Warum ist SQL-Formatierung wichtig für die Analyse von Ausführungsplänen (EXPLAIN / EXPLAIN ANALYZE)?

Antwort: Datenbank-Engines verarbeiten einzeiligen und formatierten Code gleich schnell. Für Entwickler macht jedoch erst visuelle Struktur kartesische Produkte (Cross Joins), fehlende Index-Prädikate und Subquery-Engpässe transparent, die im EXPLAIN ANALYZE-Baum lokalisiert werden müssen.

# F4: Was ist der praktische Vorteil von vorangestellten Kommas (Leading Commas) in SQL?

Antwort: Vorangestellte Kommas (SELECT id \n , name) optimieren Versionskontrollsysteme: Das Hinzufügen, Entfernen oder Ändern einer Spalte betrifft immer nur eine Zeile. Dadurch werden Git-Merge-Konflikte vermieden und Commit-Verläufe bleiben sauber nachvollziehbar.

# F5: Wie verarbeitet der Lexer PostgreSQL Dollar-Quotes ($$ oder $tag$) fehlerfrei?

Antwort: Der Lexer erkennt das öffnende Tag ($$ oder $func$) und wechselt in einen isolierten Raw-Literal-Scope. Schlüsselwörter innerhalb dieses Blocks werden weder umformatiert noch im Casing verändert, bis exakt das schließende Dollar-Tag erreicht wird.

# F6: Kann das Tool mehrteilige SQL-Batch-Skripte mit DDL, DML und Transaktionen verarbeiten?

Antwort: Ja. Der Parser erkennt Semikolons (;) und Transaktionsblöcke (BEGIN, COMMIT, ROLLBACK). Er trennt Anweisungen durch saubere Zeilenumbrüche und formatiert jeden Statement-Block mit einheitlicher Einrückung.

# F7: Warum führen reguläre Ausdrücke (Regex) bei der SQL-Formatierung oft zu Syntaxfehlern?

Antwort: Regex-Engines besitzen keinen zustandsbehafteten Scope-Stack. Sie können nicht zuverlässig unterscheiden, ob WHERE ein Klausel-Schlüsselwort oder Teil eines String-Literals ist. Ein deterministischer Automat (DFA) verhindert solche Fehlinterpretationen vollständig.


# Technische Vergleichsmatrix: Dialekte, Klauseln & Formatierungsstrategien

Datenbank-EngineIdentifier-QuotingString-LiteraleKommentartypenSpezifische Syntax-FeaturesEmpfohlener Formatierungsstil
ANSI SQLDoppelte Anführungszeichen ("id")Einfache Anführungszeichen ('txt'), ''-- Zeile, / Block /Standard-CTEs (WITH), ISO/IEC 9075 Fensterfunktionen4 Leerzeichen, Uppercase, Trailing Comma
MySQL / MariaDBBackticks (`` id ``)Einfache/doppelte Anführungszeichen, \-Escapes-- Zeile, # Zeile, / Block /Optimizer-Hints (/+ ... /), Bedingte Kommentare (/! ... /)2 Leerzeichen, Uppercase, Trailing Comma
PostgreSQLDoppelte Anführungszeichen ("id")Einfache Anführungszeichen, Dollar-Tags ($$...$$)-- Zeile, / Block /Type-Casts (::text), JSONB-Operatoren (->, @>), LATERAL4 Leerzeichen, Uppercase, Leading Comma
SQLiteEckige Klammern ([id]), "id"Einfache Anführungszeichen, Hex-Blobs (X'...')-- Zeile, / Block /PRAGMA-Direktiven, dynamische Typisierung, ATTACH DATABASE2 Leerzeichen, Uppercase, Trailing Comma
Oracle / SQL ServerDoppelte Anführungszeichen ("ID"), eckige KlammernEinfache Anführungszeichen ('txt')-- Zeile, / Block /T-SQL @Variablen, MERGE-Statements, rekursive Hierarchien4 Leerzeichen, Uppercase, Trailing Comma

# Fazit & Best Practices

Eine saubere, konsistente SQL-Formatierung ist ein wesentlicher Faktor für Softwarequalität, Review-Geschwindigkeit und Systemstabilität in datenintensiven Architekturen. Strukturierter SQL-Code macht Datenflüsse transparent, beschleunigt das Debugging bei Produktionsvorfällen und verhindert logische Fehler bei Schema-Migrationen.

Der ToolsAA Instant SQL Query Formatter & Minifier vereint die Präzision eines deterministischen DFA-Lexers mit moderner Client-Side-Webtechnologie. Da alle Transformationen zu 100 % lokal im Browser ablaufen, profitieren Entwickler von nativer Geschwindigkeit ohne jedes Datenschutz- oder Compliance-Risiko. Nutzen Sie ToolsAA, um Ihre SQL Abfragen online kostenlos zu formatieren, ORM-Abfragen zu bereinigen und produktionsreifen Code nach höchsten Standards zu erstellen.

Möchten Sie dieses Tool direkt ausführen?

Keine Installation nötig. 100 % private Browser-Berechnung ohne Datenübertragung.