-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathecosystem.html
More file actions
151 lines (142 loc) · 74 KB
/
ecosystem.html
File metadata and controls
151 lines (142 loc) · 74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Offscale Ecosystem - ML Translation, Rapid Deployment, and c-multiplatform. Automating the API lifecycle.">
<title>Offscale - High-Performance Ecosystem</title>
<link rel="stylesheet" href="styles.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/devicon.min.css" />
</head>
<body>
<header class="header" role="banner">
<div class="container">
<a href="index.html" style="color: inherit; text-decoration: none;"><h1 class="logo">Offscale</h1></a>
<nav class="main-nav" role="navigation" aria-label="Main Navigation" style="align-items: center;">
<a href="index.html">SDKs & Docs</a>
<a href="ecosystem.html" class="active" style="opacity: 1;">Ecosystem</a>
<button popovertarget="consulting-popover" id="consulting-link" style="background: none; border: none; color: inherit; font: inherit; text-decoration: line-through; opacity: 0.6; cursor: help; padding: 0;" aria-label="Consulting (Closed)">Consulting</button>
<a href="https://github.com/SamuelMarks/cdd-ctl" target="_blank" rel="noopener" aria-label="cdd-ctl on GitHub" style="display: flex; align-items: center; justify-content: center; opacity: 1; margin-left: 16px;">
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="width: 24px; height: 24px;">
<path d="M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.166 6.839 9.489.5.092.682-.217.682-.482 0-.237-.008-.866-.013-1.7-2.782.603-3.369-1.34-3.369-1.34-.454-1.156-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.831.092-.646.35-1.086.636-1.336-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.114 2.504.336 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.161 22 16.418 22 12c0-5.523-4.477-10-10-10z"/>
</svg>
</a>
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle Dark Mode" style="background: none; border: none; font-size: 1.25rem; cursor: pointer; margin-left: 16px;">🌙</button>
</nav>
</div>
</header>
<main role="main">
<section class="hero">
<div class="container">
<h2 class="hero-title" tabindex="0" aria-label="Rapid Application Development, Deployment, Documentation, Devices, Deep-learning, Dependability">
<span class="static-text" style="margin-right: 8px;">Rapid Application</span>
<span id="rotating-text-container" class="rotating-text-wrapper">
<span class="word" style="color: var(--primary);">Development</span>
</span>
</h2>
<p class="hero-subtitle">New compilers to ‘solve’ software</p>
</div>
</section>
<section class="features" aria-label="Key Features">
<div class="container features-grid">
<!-- Column 1 -->
<article class="feature-card" tabindex="0">
<div class="lang-icons" aria-hidden="true" style="display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; font-size: 2.25rem; color: var(--text-primary); margin-bottom: 24px; min-height: 48px; align-items: center;">
<i class="devicon-c-plain" title="C"></i>
<i class="devicon-cplusplus-plain" title="C++"></i>
<i class="devicon-csharp-plain" title="C#"></i>
<i class="devicon-go-plain" title="Go"></i>
<i class="devicon-java-plain" title="Java"></i>
<i class="devicon-kotlin-plain" title="Kotlin"></i>
<i class="devicon-php-plain" title="PHP"></i>
<i class="devicon-python-plain" title="Python"></i>
<i class="devicon-ruby-plain" title="Ruby"></i>
<i class="devicon-rust-plain" title="Rust"></i>
<i class="devicon-bash-plain" title="Shell"></i>
<i class="devicon-swift-plain" title="Swift"></i>
<i class="devicon-typescript-plain" title="TypeScript"></i>
</div>
<h3>OpenAPI ↔ Language</h3>
<p><a href="https://github.com/SamuelMarks?tab=repositories&q=cdd-&type=&language=&sort=" target="_blank" rel="noopener" style="color: var(--primary); text-decoration: none; font-weight: 500;">13 new bidirectional compilers</a> (C, C++, C#, Go, Java, Kotlin, PHP, Python, Ruby, Rust, Shell, Swift, TS). Includes code to AND from OpenAPI 3.2.0 for: servers, clients, CLIs, and auto-admin UIs.</p>
</article>
<!-- Column 2 -->
<article class="feature-card" tabindex="0">
<div class="card-diagram" aria-hidden="true">
<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart inline-svg" style="max-width: 996.812px; width: 100%; height: auto; max-height: 160px; object-fit: contain;" viewBox="0 0 996.8125 168" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:14px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(206.4, 100%, 100%);}#my-svg .error-text{fill:#000000;stroke:#000000;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#ff6a00;stroke:#ff6a00;}#my-svg .marker.cross{stroke:#ff6a00;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:14px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{}#my-svg .label text,#my-svg span{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#fff1e6;stroke:#ff6a00;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#ff6a00!important;stroke-width:0;stroke:#ff6a00;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePath .path{stroke:#ff6a00;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:#ff6a00;fill:none;}#my-svg .edgeLabel{background-color:hsl(-93.6, 100%, 95.0980392157%);text-align:center;}#my-svg .edgeLabel p{background-color:hsl(-93.6, 100%, 95.0980392157%);}#my-svg .edgeLabel rect{opacity:0.5;background-color:hsl(-93.6, 100%, 95.0980392157%);fill:hsl(-93.6, 100%, 95.0980392157%);}#my-svg .labelBkg{background-color:rgba(241, 230.0000000001, 255, 0.5);}#my-svg .cluster rect{fill:hsl(206.4, 100%, 100%);stroke:hsl(206.4, 60%, 90%);stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(206.4, 100%, 100%);border:1px solid hsl(206.4, 60%, 90%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:hsl(-93.6, 100%, 95.0980392157%);text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:hsl(-93.6, 100%, 95.0980392157%);padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:hsl(-93.6, 100%, 95.0980392157%);fill:hsl(-93.6, 100%, 95.0980392157%);}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path d="M99.328,84L103.495,84C107.661,84,115.995,84,123.661,84C131.328,84,138.328,84,141.828,84L145.328,84" id="L_C_L_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_C_L_0" data-points="W3sieCI6OTkuMzI4MTI1LCJ5Ijo4NH0seyJ4IjoxMjQuMzI4MTI1LCJ5Ijo4NH0seyJ4IjoxNDkuMzI4MTI1LCJ5Ijo4NH1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M207.519,62.261L213.04,57.467C218.56,52.674,229.6,43.087,238.857,38.293C248.115,33.5,255.589,33.5,259.326,33.5L263.063,33.5" id="L_L_N_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L_N_0" data-points="W3sieCI6MjA3LjUxOTMxODEwMzY1ODQzLCJ5Ijo2Mi4yNjA4OTg0MTE4Njg4OH0seyJ4IjoyNDAuNjQwNjI1LCJ5IjozMy41fSx7IngiOjI2Ny4wNjI1LCJ5IjozMy41fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M207.519,105.739L213.04,110.533C218.56,115.326,229.6,124.913,238.62,129.707C247.641,134.5,254.641,134.5,258.141,134.5L261.641,134.5" id="L_L_D_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_L_D_0" data-points="W3sieCI6MjA3LjUxOTMxODEwMzY1ODQzLCJ5IjoxMDUuNzM5MTAxNTg4MTMxMTJ9LHsieCI6MjQwLjY0MDYyNSwieSI6MTM0LjV9LHsieCI6MjY1LjY0MDYyNSwieSI6MTM0LjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M367.391,33.5L371.794,33.5C376.198,33.5,385.005,33.5,396.192,35.71C407.38,37.92,420.947,42.341,427.731,44.551L434.514,46.761" id="L_N_OS_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_N_OS_0" data-points="W3sieCI6MzY3LjM5MDYyNSwieSI6MzMuNX0seyJ4IjozOTMuODEyNSwieSI6MzMuNX0seyJ4Ijo0MzguMzE3NDUwNDk1MDQ5NSwieSI6NDh9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M368.813,134.5L372.979,134.5C377.146,134.5,385.479,134.5,396.429,132.29C407.38,130.08,420.947,125.659,427.731,123.449L434.514,121.239" id="L_D_OS_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_D_OS_0" data-points="W3sieCI6MzY4LjgxMjUsInkiOjEzNC41fSx7IngiOjM5My44MTI1LCJ5IjoxMzQuNX0seyJ4Ijo0MzguMzE3NDUwNDk1MDQ5NSwieSI6MTIwfV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M678.813,84L682.979,84C687.146,84,695.479,84,703.146,84C710.813,84,717.813,84,721.313,84L724.813,84" id="L_OS_Pkg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_OS_Pkg_0" data-points="W3sieCI6Njc4LjgxMjUsInkiOjg0fSx7IngiOjcwMy44MTI1LCJ5Ijo4NH0seyJ4Ijo3MjguODEyNSwieSI6ODR9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_C_L_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_L_N_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_L_D_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_N_OS_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_D_OS_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_OS_Pkg_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="flowchart-C-0" transform="translate(53.6640625, 84)"><rect class="basic label-container" style="" x="-45.6640625" y="-25.5" width="91.328125" height="51"/><g class="label" style="" transform="translate(-15.6640625, -10.5)"><rect/><foreignObject width="31.328125" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Code</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-L-1" transform="translate(182.484375, 84)"><circle class="basic label-container" style="" r="33.15625" cx="0" cy="0"/><g class="label" style="" transform="translate(-25.65625, -10.5)"><rect/><foreignObject width="51.3125" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>libscript</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-N-3" transform="translate(317.2265625, 33.5)"><rect class="basic label-container" style="" x="-50.1640625" y="-25.5" width="100.328125" height="51"/><g class="label" style="" transform="translate(-20.1640625, -10.5)"><rect/><foreignObject width="40.328125" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Native</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-D-5" transform="translate(317.2265625, 134.5)"><rect class="basic label-container" style="" x="-51.5859375" y="-25.5" width="103.171875" height="51"/><g class="label" style="" transform="translate(-21.5859375, -10.5)"><rect/><foreignObject width="43.171875" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Docker</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-OS-8" transform="translate(548.8125, 84)"><rect class="basic label-container" style="" x="-130" y="-36" width="260" height="72"/><g class="label" style="" transform="translate(-100, -21)"><rect/><foreignObject width="200" height="42"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>SunOS, Linux, macOS, Windows, DOS</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Pkg-10" transform="translate(858.8125, 84)"><rect class="basic label-container" style="" x="-130" y="-36" width="260" height="72"/><g class="label" style="" transform="translate(-100, -21)"><rect/><foreignObject width="200" height="42"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>.msi, .exe, .deb, .pkg, .rpm, etc.</p></span></div></foreignObject></g></g></g></g></g></svg>
</div>
<h3><a href="https://github.com/SamuelMarks/libscript" target="_blank" rel="noopener" style="color: inherit; text-decoration: none;">Rapid Deployment</a></h3>
<p>Deploy databases, servers, and whole stacks. Natively (DOS, SunOS, Windows, Linux, macOS) or with Docker. Instantly export to <code>.msi</code>, <code>.exe</code>, <code>.deb</code>, <code>.pkg</code>, <code>.rpm</code>, or even <code>.Dockerfile</code></p>
</article>
<!-- Column 3 -->
<article class="feature-card" tabindex="0">
<div class="card-diagram" aria-hidden="true">
<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart inline-svg" style="max-width: 483.953px; width: 100%; height: auto; max-height: 160px; object-fit: contain;" viewBox="0 0 483.953125 269" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:14px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(206.4, 100%, 100%);}#my-svg .error-text{fill:#000000;stroke:#000000;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#ff6a00;stroke:#ff6a00;}#my-svg .marker.cross{stroke:#ff6a00;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:14px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{}#my-svg .label text,#my-svg span{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#fff1e6;stroke:#ff6a00;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#ff6a00!important;stroke-width:0;stroke:#ff6a00;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePath .path{stroke:#ff6a00;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:#ff6a00;fill:none;}#my-svg .edgeLabel{background-color:hsl(-93.6, 100%, 95.0980392157%);text-align:center;}#my-svg .edgeLabel p{background-color:hsl(-93.6, 100%, 95.0980392157%);}#my-svg .edgeLabel rect{opacity:0.5;background-color:hsl(-93.6, 100%, 95.0980392157%);fill:hsl(-93.6, 100%, 95.0980392157%);}#my-svg .labelBkg{background-color:rgba(241, 230.0000000001, 255, 0.5);}#my-svg .cluster rect{fill:hsl(206.4, 100%, 100%);stroke:hsl(206.4, 60%, 90%);stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(206.4, 100%, 100%);border:1px solid hsl(206.4, 60%, 90%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:hsl(-93.6, 100%, 95.0980392157%);text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:hsl(-93.6, 100%, 95.0980392157%);padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:hsl(-93.6, 100%, 95.0980392157%);fill:hsl(-93.6, 100%, 95.0980392157%);}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path d="M145.453,134.5L152.391,134.5C159.328,134.5,173.203,134.5,186.411,134.5C199.62,134.5,212.161,134.5,218.432,134.5L224.703,134.5" id="L_C_G_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_C_G_0" data-points="W3sieCI6MTQ1LjQ1MzEyNSwieSI6MTM0LjV9LHsieCI6MTg3LjA3ODEyNSwieSI6MTM0LjV9LHsieCI6MjI4LjcwMzEyNSwieSI6MTM0LjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M294.243,99.38L301.546,88.4C308.849,77.42,323.456,55.46,336.246,44.48C349.036,33.5,360.01,33.5,365.497,33.5L370.984,33.5" id="L_G_S_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_G_S_0" data-points="W3sieCI6Mjk0LjI0Mjg5MjgyNjc4MzgsInkiOjk5LjM3OTczOTY4MzE0MjA5fSx7IngiOjMzOC4wNjI1LCJ5IjozMy41fSx7IngiOjM3NC45ODQzNzUsInkiOjMzLjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M313.063,134.5L317.229,134.5C321.396,134.5,329.729,134.5,339.717,134.5C349.706,134.5,361.349,134.5,367.171,134.5L372.992,134.5" id="L_G_CL_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_G_CL_0" data-points="W3sieCI6MzEzLjA2MjUsInkiOjEzNC41fSx7IngiOjMzOC4wNjI1LCJ5IjoxMzQuNX0seyJ4IjozNzYuOTkyMTg3NSwieSI6MTM0LjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M294.243,169.62L301.546,180.6C308.849,191.58,323.456,213.54,334.259,224.52C345.063,235.5,352.063,235.5,355.563,235.5L359.063,235.5" id="L_G_D_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_G_D_0" data-points="W3sieCI6Mjk0LjI0Mjg5MjgyNjc4MzgsInkiOjE2OS42MjAyNjAzMTY4NTc5Mn0seyJ4IjozMzguMDYyNSwieSI6MjM1LjV9LHsieCI6MzYzLjA2MjUsInkiOjIzNS41fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(187.078125, 134.5)"><g class="label" data-id="L_C_G_0" transform="translate(-16.625, -10.5)"><foreignObject width="33.25" height="21"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>Parse</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_G_S_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_G_CL_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_G_D_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="flowchart-C-0" transform="translate(76.7265625, 134.5)"><rect class="basic label-container" style="" x="-68.7265625" y="-25.5" width="137.453125" height="51"/><g class="label" style="" transform="translate(-38.7265625, -10.5)"><rect/><foreignObject width="77.453125" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Source Code</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-G-1" transform="translate(270.8828125, 134.5)"><circle class="basic label-container" style="" r="42.1796875" cx="0" cy="0"/><g class="label" style="" transform="translate(-34.6796875, -10.5)"><rect/><foreignObject width="69.359375" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Generators</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-S-3" transform="translate(419.5078125, 33.5)"><rect class="basic label-container" style="" x="-44.5234375" y="-25.5" width="89.046875" height="51"/><g class="label" style="" transform="translate(-14.5234375, -10.5)"><rect/><foreignObject width="29.046875" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>SDKs</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-CL-5" transform="translate(419.5078125, 134.5)"><rect class="basic label-container" style="" x="-42.515625" y="-25.5" width="85.03125" height="51"/><g class="label" style="" transform="translate(-12.515625, -10.5)"><rect/><foreignObject width="25.03125" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>CLIs</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-D-7" transform="translate(419.5078125, 235.5)"><rect class="basic label-container" style="" x="-56.4453125" y="-25.5" width="112.890625" height="51"/><g class="label" style="" transform="translate(-26.4453125, -10.5)"><rect/><foreignObject width="52.890625" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>API Docs</p></span></div></foreignObject></g></g></g></g></g></svg>
</div>
<h3>SDKs, CLIs & API Docs</h3>
<p>Automatically generate static HTML docs with beautiful sample API calls and deploy SDKs natively to language package managers (PyPI, Crates.io, npm, etc.), alongside powerful CLIs.</p>
</article>
</div>
<!-- Row 2 -->
<div class="container features-grid">
<!-- Column 4 (Row 2, Col 1) -->
<article class="feature-card" tabindex="0">
<div class="card-diagram" aria-hidden="true">
<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart inline-svg" style="max-width: 480.953px; width: 100%; height: auto; max-height: 160px; object-fit: contain;" viewBox="0 0 480.953125 564" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(206.4, 100%, 100%);}#my-svg .error-text{fill:#000000;stroke:#000000;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#ff6a00;stroke:#ff6a00;}#my-svg .marker.cross{stroke:#ff6a00;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{}#my-svg .label text,#my-svg span{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#fff1e6;stroke:#ff6a00;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#ff6a00!important;stroke-width:0;stroke:#ff6a00;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePath .path{stroke:#ff6a00;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:#ff6a00;fill:none;}#my-svg .edgeLabel{background-color:hsl(-93.6, 100%, 95.0980392157%);text-align:center;}#my-svg .edgeLabel p{background-color:hsl(-93.6, 100%, 95.0980392157%);}#my-svg .edgeLabel rect{opacity:0.5;background-color:hsl(-93.6, 100%, 95.0980392157%);fill:hsl(-93.6, 100%, 95.0980392157%);}#my-svg .labelBkg{background-color:rgba(241, 230.0000000001, 255, 0.5);}#my-svg .cluster rect{fill:hsl(206.4, 100%, 100%);stroke:hsl(206.4, 60%, 90%);stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(206.4, 100%, 100%);border:1px solid hsl(206.4, 60%, 90%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:hsl(-93.6, 100%, 95.0980392157%);text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:hsl(-93.6, 100%, 95.0980392157%);padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:hsl(-93.6, 100%, 95.0980392157%);fill:hsl(-93.6, 100%, 95.0980392157%);}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path d="M120.805,83.044L126.824,81.037C132.844,79.03,144.883,75.015,155.144,73.607C165.405,72.199,173.889,73.399,178.13,73.998L182.372,74.598" id="L_PT_SWI_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_PT_SWI_0" data-points="W3sieCI6MTIwLjgwNDY4NzUsInkiOjgzLjA0NDQ3MDM5Nzk4NzZ9LHsieCI6MTU2LjkyMTg3NSwieSI6NzF9LHsieCI6MTgyLjM3MjE3MzU0NzkzMTcsInkiOjc0LjU5ODAwOTk1NTk3MDAzfV0="/><path d="M100.208,175L109.66,167.5C119.113,160,138.017,145,152.993,133.674C167.968,122.348,179.015,114.696,184.538,110.869L190.061,107.043" id="L_TF_SWI_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_TF_SWI_0" data-points="W3sieCI6MTAwLjIwODIyMDEwODY5NTY2LCJ5IjoxNzV9LHsieCI6MTU2LjkyMTg3NSwieSI6MTMwfSx7IngiOjE5MC4wNjEyNzk2ODQyNzIwOCwieSI6MTA3LjA0MzI1NzU0NTg2MzIxfV0="/><path d="M85.195,312L97.149,293.167C109.104,274.333,133.013,236.667,152.837,204.704C172.662,172.742,188.402,146.484,196.272,133.355L204.142,120.227" id="L_KR_SWI_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_KR_SWI_0" data-points="W3sieCI6ODUuMTk0OTcwMzQ2NzE1MzIsInkiOjMxMn0seyJ4IjoxNTYuOTIxODc1LCJ5IjoxOTl9LHsieCI6MjA0LjE0MjE1MTAzNTE4MDYzLCJ5IjoxMjAuMjI2NTI0MjcyNjU2NDZ9XQ=="/><path d="M265.251,54.957L270.774,51.131C276.298,47.304,287.344,39.652,299.901,35.826C312.458,32,326.526,32,333.56,32L340.594,32" id="L_SWI_JX_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SWI_JX_0" data-points="W3sieCI6MjY1LjI1MTIyMDMxNTcyNzk1LCJ5Ijo1NC45NTY3NDI0NTQxMzY3OX0seyJ4IjoyOTguMzkwNjI1LCJ5IjozMn0seyJ4IjozNDAuNTkzNzUsInkiOjMyfV0="/><path d="M265.251,107.043L270.774,110.869C276.298,114.696,287.344,122.348,302.724,126.174C318.104,130,337.818,130,347.674,130L357.531,130" id="L_SWI_MLX_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SWI_MLX_0" data-points="W3sieCI6MjY1LjI1MTIyMDMxNTcyNzk1LCJ5IjoxMDcuMDQzMjU3NTQ1ODYzMjF9LHsieCI6Mjk4LjM5MDYyNSwieSI6MTMwfSx7IngiOjM1Ny41MzEyNSwieSI6MTMwfV0="/><path d="M86.266,124L98.042,141.333C109.818,158.667,133.37,193.333,154.787,233.293C176.204,273.252,195.487,318.504,205.128,341.13L214.769,363.756" id="L_PT_O9K_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_PT_O9K_0" data-points="W3sieCI6ODYuMjY2MTEzMjgxMjUsInkiOjEyNH0seyJ4IjoxNTYuOTIxODc1LCJ5IjoyMjh9LHsieCI6MjE0Ljc2OTA1NDc5NzM1MzgyLCJ5IjozNjMuNzU2MjI2Njc3MDY4fV0="/><path d="M93.678,223L104.218,233.667C114.759,244.333,135.84,265.667,155.149,289.596C174.457,313.525,191.992,340.05,200.759,353.313L209.527,366.576" id="L_TF_O9K_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_TF_O9K_0" data-points="W3sieCI6OTMuNjc3NTU2ODE4MTgxODEsInkiOjIyM30seyJ4IjoxNTYuOTIxODc1LCJ5IjoyODd9LHsieCI6MjA5LjUyNjg5NzcxMjg1NTU0LCJ5IjozNjYuNTc1NzAwMzYxNzQ4M31d"/><path d="M114.414,355.936L121.499,359.114C128.583,362.291,142.753,368.645,156.335,373.568C169.917,378.491,182.912,381.981,189.409,383.726L195.907,385.472" id="L_KR_O9K_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_KR_O9K_0" data-points="W3sieCI6MTE0LjQxNDA2MjUsInkiOjM1NS45MzYyMTQxNzY2MjM4fSx7IngiOjE1Ni45MjE4NzUsInkiOjM3NX0seyJ4IjoxOTUuOTA2Njk0MDI3MDI0OCwieSI6Mzg1LjQ3MTczNDAyNjI1NjN9XQ=="/><path d="M131.922,434L136.089,434C140.255,434,148.589,434,159.775,430.03C170.961,426.061,185.001,418.122,192.02,414.152L199.04,410.182" id="L_SK_O9K_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SK_O9K_0" data-points="W3sieCI6MTMxLjkyMTg3NSwieSI6NDM0fSx7IngiOjE1Ni45MjE4NzUsInkiOjQzNH0seyJ4IjoxOTkuMDM5OTExNTE4NzczMiwieSI6NDEwLjE4MjQyMjQ2Nzg0NjR9XQ=="/><path d="M125.094,532L130.398,532C135.703,532,146.313,532,160.907,513.876C175.501,495.752,194.081,459.504,203.371,441.38L212.661,423.256" id="L_LGBM_O9K_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LGBM_O9K_0" data-points="W3sieCI6MTI1LjA5Mzc1LCJ5Ijo1MzJ9LHsieCI6MTU2LjkyMTg3NSwieSI6NTMyfSx7IngiOjIxMi42NjA2OTEyMjE0MTcxLCJ5Ijo0MjMuMjU1NzQ4ODY5NTQ4MX1d"/><path d="M240.543,363.756L250.185,341.13C259.826,318.504,279.108,273.252,297.872,250.626C316.635,228,334.88,228,344.003,228L353.125,228" id="L_O9K_ON_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O9K_ON_0" data-points="W3sieCI6MjQwLjU0MzQ0NTIwMjY0NjE4LCJ5IjozNjMuNzU2MjI2Njc3MDY4fSx7IngiOjI5OC4zOTA2MjUsInkiOjIyOH0seyJ4IjozNTMuMTI1LCJ5IjoyMjh9XQ=="/><path d="M257.922,406.836L264.667,409.697C271.411,412.557,284.901,418.279,299.904,421.139C314.906,424,331.422,424,339.68,424L347.938,424" id="L_O9K_CPP_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O9K_CPP_0" data-points="W3sieCI6MjU3LjkyMTY4NzAxNTQ3Mjk3LCJ5Ijo0MDYuODM2MjM1NzEyMzI3ODN9LHsieCI6Mjk4LjM5MDYyNSwieSI6NDI0fSx7IngiOjM0Ny45Mzc1LCJ5Ijo0MjR9XQ=="/><path d="M243.557,422.774L252.696,439.312C261.835,455.849,280.113,488.925,293.418,505.462C306.724,522,315.057,522,319.224,522L323.391,522" id="L_O9K_WEB_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_O9K_WEB_0" data-points="W3sieCI6MjQzLjU1NzAwNjA3NDgyMzI4LCJ5Ijo0MjIuNzczODAwMjU3MzM0M30seyJ4IjoyOTguMzkwNjI1LCJ5Ijo1MjJ9LHsieCI6MzIzLjM5MDYyNSwieSI6NTIyfV0="/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_PT_SWI_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_TF_SWI_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_KR_SWI_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SWI_JX_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SWI_MLX_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_PT_O9K_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_TF_O9K_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_KR_O9K_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SK_O9K_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LGBM_O9K_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O9K_ON_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O9K_CPP_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_O9K_WEB_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="flowchart-PT-0" transform="translate(69.9609375, 100)"><rect class="basic label-container" style="" x="-50.84375" y="-24" width="101.6875" height="48"/><g class="label" style="" transform="translate(-20.84375, -9)"><rect/><foreignObject width="41.6875" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>PyTorch</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SWI-1" transform="translate(227.65625, 81)"><circle class="basic label-container" style="" r="45.734375" cx="0" cy="0"/><g class="label" style="" transform="translate(-38.234375, -9)"><rect/><foreignObject width="76.46875" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>ml-switcheroo</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-TF-2" transform="translate(69.9609375, 199)"><rect class="basic label-container" style="" x="-59.875" y="-24" width="119.75" height="48"/><g class="label" style="" transform="translate(-29.875, -9)"><rect/><foreignObject width="59.75" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>TensorFlow</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-KR-4" transform="translate(69.9609375, 336)"><rect class="basic label-container" style="" x="-44.453125" y="-24" width="88.90625" height="48"/><g class="label" style="" transform="translate(-14.453125, -9)"><rect/><foreignObject width="28.90625" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Keras</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-JX-7" transform="translate(398.171875, 32)"><rect class="basic label-container" style="" x="-57.578125" y="-24" width="115.15625" height="48"/><g class="label" style="" transform="translate(-27.578125, -9)"><rect/><foreignObject width="55.15625" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>JAX / Flax</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-MLX-9" transform="translate(398.171875, 130)"><rect class="basic label-container" style="" x="-40.640625" y="-24" width="81.28125" height="48"/><g class="label" style="" transform="translate(-10.640625, -9)"><rect/><foreignObject width="21.28125" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>MLX</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-O9K-11" transform="translate(227.65625, 394)"><circle class="basic label-container" style="" r="32.875" cx="0" cy="0"/><g class="label" style="" transform="translate(-25.375, -9)"><rect/><foreignObject width="50.75" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>onnx9000</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SK-16" transform="translate(69.9609375, 434)"><rect class="basic label-container" style="" x="-61.9609375" y="-24" width="123.921875" height="48"/><g class="label" style="" transform="translate(-31.9609375, -9)"><rect/><foreignObject width="63.921875" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Scikit-Learn</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LGBM-18" transform="translate(69.9609375, 532)"><rect class="basic label-container" style="" x="-55.1328125" y="-24" width="110.265625" height="48"/><g class="label" style="" transform="translate(-25.1328125, -9)"><rect/><foreignObject width="50.265625" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>LightGBM</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-ON-21" transform="translate(398.171875, 228)"><rect class="basic label-container" style="" x="-45.046875" y="-24" width="90.09375" height="48"/><g class="label" style="" transform="translate(-15.046875, -9)"><rect/><foreignObject width="30.09375" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>ONNX</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-CPP-23" transform="translate(398.171875, 424)"><rect class="basic label-container" style="" x="-50.234375" y="-24" width="100.46875" height="48"/><g class="label" style="" transform="translate(-20.234375, -9)"><rect/><foreignObject width="40.46875" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>C / C++</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-WEB-25" transform="translate(398.171875, 522)"><rect class="basic label-container" style="" x="-74.78125" y="-24" width="149.5625" height="48"/><g class="label" style="" transform="translate(-44.78125, -9)"><rect/><foreignObject width="89.5625" height="18"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>WASM / WebGPU</p></span></div></foreignObject></g></g></g></g></g></svg>
</div>
<h3>ML Translation</h3>
<p>Effortlessly transpile and compile across the entire stack (PyTorch, TensorFlow, Keras, Scikit-Learn, LightGBM → JAX, MLX, ONNX, C++, C, WebGPU, WASM) using <a href="https://github.com/SamuelMarks/onnx9000" target="_blank" rel="noopener" style="color: var(--primary); text-decoration: none; font-weight: 500;">onnx9000</a> and <a href="https://github.com/SamuelMarks/ml-switcheroo" target="_blank" rel="noopener" style="color: var(--primary); text-decoration: none; font-weight: 500;">ml-switcheroo</a>.</p>
</article>
<!-- Column 5 (Row 2, Col 2) -->
<article class="feature-card" tabindex="0">
<div class="card-diagram" aria-hidden="true">
<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart inline-svg" style="max-width: 440.594px; width: 100%; height: auto; max-height: 160px; object-fit: contain;" viewBox="0 0 440.59375 247.75" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:14px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(206.4, 100%, 100%);}#my-svg .error-text{fill:#000000;stroke:#000000;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#ff6a00;stroke:#ff6a00;}#my-svg .marker.cross{stroke:#ff6a00;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:14px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{}#my-svg .label text,#my-svg span{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#fff1e6;stroke:#ff6a00;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#ff6a00!important;stroke-width:0;stroke:#ff6a00;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePath .path{stroke:#ff6a00;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:#ff6a00;fill:none;}#my-svg .edgeLabel{background-color:hsl(-93.6, 100%, 95.0980392157%);text-align:center;}#my-svg .edgeLabel p{background-color:hsl(-93.6, 100%, 95.0980392157%);}#my-svg .edgeLabel rect{opacity:0.5;background-color:hsl(-93.6, 100%, 95.0980392157%);fill:hsl(-93.6, 100%, 95.0980392157%);}#my-svg .labelBkg{background-color:rgba(241, 230.0000000001, 255, 0.5);}#my-svg .cluster rect{fill:hsl(206.4, 100%, 100%);stroke:hsl(206.4, 60%, 90%);stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(206.4, 100%, 100%);border:1px solid hsl(206.4, 60%, 90%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:hsl(-93.6, 100%, 95.0980392157%);text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:hsl(-93.6, 100%, 95.0980392157%);padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:hsl(-93.6, 100%, 95.0980392157%);fill:hsl(-93.6, 100%, 95.0980392157%);}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster" id="Core" data-look="classic"><rect style="" x="8" y="8" width="205.421875" height="231.75"/><g class="cluster-label" transform="translate(66.90625, 8)"><foreignObject width="87.609375" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5;"><span class="nodeLabel"><p>Core Libraries</p></span></div></foreignObject></g></g></g><g class="edgePaths"><path d="M159.039,68.839L168.103,67.075C177.167,65.31,195.294,61.78,208.525,60.015C221.755,58.25,230.089,58.25,237.758,58.57C245.427,58.889,252.433,59.529,255.936,59.848L259.438,60.168" id="L_ORM_CRF_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ORM_CRF_0" data-points="W3sieCI6MTU5LjAzOTA2MjUsInkiOjY4LjgzOTQ4ODA5NjE0MzYxfSx7IngiOjIxMy40MjE4NzUsInkiOjU4LjI1fSx7IngiOjIzOC40MjE4NzUsInkiOjU4LjI1fSx7IngiOjI2My40MjE4NzUsInkiOjYwLjUzMTMxNDYwNzU0MjZ9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M153.824,103.75L163.757,109.625C173.69,115.5,193.556,127.25,207.656,133.125C221.755,139,230.089,139,242.691,142.888C255.294,146.775,272.167,154.551,280.603,158.438L289.04,162.326" id="L_ORM_CMP_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ORM_CMP_0" data-points="W3sieCI6MTUzLjgyNDE3MDUyNDY5MTM3LCJ5IjoxMDMuNzV9LHsieCI6MjEzLjQyMTg3NSwieSI6MTM5fSx7IngiOjIzOC40MjE4NzUsInkiOjEzOX0seyJ4IjoyOTIuNjcyMzM5MTA4OTEwOSwieSI6MTY0fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M154.002,153.75L163.906,147.917C173.809,142.083,193.615,130.417,207.685,124.583C221.755,118.75,230.089,118.75,242.691,114.862C255.294,110.975,272.167,103.199,280.603,99.312L289.04,95.424" id="L_NET_CRF_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_NET_CRF_0" data-points="W3sieCI6MTU0LjAwMjMyNDM4MDE2NTMsInkiOjE1My43NX0seyJ4IjoyMTMuNDIxODc1LCJ5IjoxMTguNzV9LHsieCI6MjM4LjQyMTg3NSwieSI6MTE4Ljc1fSx7IngiOjI5Mi42NzIzMzkxMDg5MTA5LCJ5Ijo5My43NX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M188.422,194.571L192.589,195.393C196.755,196.214,205.089,197.857,213.422,198.679C221.755,199.5,230.089,199.5,238.555,199.108C247.021,198.715,255.62,197.931,259.92,197.538L264.22,197.146" id="L_NET_CMP_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_NET_CMP_0" data-points="W3sieCI6MTg4LjQyMTg3NSwieSI6MTk0LjU3MTExODg4NjQzNzk3fSx7IngiOjIxMy40MjE4NzUsInkiOjE5OS41fSx7IngiOjIzOC40MjE4NzUsInkiOjE5OS41fSx7IngiOjI2OC4yMDMxMjUsInkiOjE5Ni43ODIzODM5NzM3NjQ5fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_ORM_CRF_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_ORM_CMP_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_NET_CRF_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_NET_CMP_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="flowchart-ORM-0" transform="translate(110.7109375, 78.25)"><rect class="basic label-container" style="fill:#fff1e6 !important;stroke:#ff6a00 !important" x="-48.328125" y="-25.5" width="96.65625" height="51"/><g class="label" style="" transform="translate(-18.328125, -10.5)"><rect/><foreignObject width="36.65625" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>c-orm</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-NET-1" transform="translate(110.7109375, 179.25)"><rect class="basic label-container" style="fill:#fff1e6 !important;stroke:#ff6a00 !important" x="-77.7109375" y="-25.5" width="155.421875" height="51"/><g class="label" style="" transform="translate(-47.7109375, -10.5)"><rect/><foreignObject width="95.421875" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>c-abstract-http</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-CRF-3" transform="translate(348.0078125, 68.25)"><rect class="basic label-container" style="fill:#fff1e6 !important;stroke:#ff6a00 !important" x="-84.5859375" y="-25.5" width="169.171875" height="51"/><g class="label" style="" transform="translate(-54.5859375, -10.5)"><rect/><foreignObject width="109.171875" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>c-rest-framework</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-CMP-5" transform="translate(348.0078125, 189.5)"><rect class="basic label-container" style="fill:#fff1e6 !important;stroke:#ff6a00 !important" x="-79.8046875" y="-25.5" width="159.609375" height="51"/><g class="label" style="" transform="translate(-49.8046875, -10.5)"><rect/><foreignObject width="99.609375" height="21"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>c-multiplatform</p></span></div></foreignObject></g></g></g></g></g></svg>
</div>
<h3><a href="https://rewriteinc.io" target="_blank" rel="noopener" style="color: inherit; text-decoration: none;">#rewriteInC</a></h3>
<p>Build blazing-fast native applications powered primarily by <a href="https://github.com/SamuelMarks/c-rest-framework" target="_blank" rel="noopener" style="color: var(--primary); text-decoration: none; font-weight: 500;">c-rest-framework</a>, a powerful ORM (<strong>c-orm</strong>), network library (<strong>c-abstract-http</strong>), and file system abstraction (<strong>c-fs</strong>).</p>
</article>
<!-- Column 6 (Row 2, Col 3) -->
<article class="feature-card" tabindex="0">
<div class="lang-icons" aria-hidden="true" style="display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; font-size: 2.25rem; color: var(--text-primary); margin-bottom: 24px; min-height: 48px; align-items: center;">
<i class="devicon-wasm-original" title="WebAssembly"></i>
<svg role="img" aria-label="Technical Diagram" width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" title="Web"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95a15.65 15.65 0 0 0-1.38-3.56A8.03 8.03 0 0 1 18.92 8zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56A7.987 7.987 0 0 1 5.08 16zm2.95-8H5.08a7.987 7.987 0 0 1 3.9-3.56C8.38 5.55 7.92 6.75 7.6 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2s.07-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2zm1.28 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"/></svg>
<i class="devicon-android-plain" title="Android"></i>
<i class="devicon-apple-original" title="iOS / Apple"></i>
<i class="devicon-linux-plain" title="Linux"></i>
<i class="devicon-windows8-original" title="Windows"></i>
<i class="devicon-raspberrypi-plain" title="Raspberry Pi"></i>
<svg role="img" aria-label="Technical Diagram" width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" title="DOS"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12zM6 8h2v2H6zm4 4H6v2h4zm2 0h6v2h-6z"/></svg>
<svg role="img" aria-label="Technical Diagram" width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" title="TV / tvOS"><path d="M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12z"/></svg>
<svg role="img" aria-label="Technical Diagram" width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" title="watchOS"><path d="M15 1H9v4.14A5.996 5.996 0 0 0 6 10v4c0 2.21 1.19 4.12 3 5.18V23h6v-3.82c1.81-1.06 3-2.97 3-5.18v-4c0-2.31-1.33-4.32-3.3-5.32V1zM9 3h6v1.27c-1.04-.18-2.12-.18-3.15 0L9 4.2V3zm3 14c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm3 4H9v-1h6v1z"/></svg>
<svg role="img" aria-label="Technical Diagram" width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" title="Game Consoles"><path d="M21.58 16.09l-1.09-7.66C20.18 6.05 18.23 4.5 15.96 4.5H8.04C5.77 4.5 3.82 6.05 3.51 8.43l-1.09 7.66C2.2 17.63 3.39 19.5 5.16 19.5c.8 0 1.55-.3 2.11-.84l2.5-2.27c.36-.33.84-.52 1.34-.52h1.79c.5 0 .98.19 1.34.52l2.5 2.27c.56.54 1.31.84 2.11.84 1.77 0 2.96-1.87 2.73-3.41zM10.5 11.5H9v1.5H7.5v-1.5H6v-1.5h1.5V8.5H9v1.5h1.5v1.5zm5-1.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5 3c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
</div>
<h3><a href="https://github.com/SamuelMarks/c-multiplatform" target="_blank" rel="noopener" style="color: inherit; text-decoration: none;">c-multiplatform</a></h3>
<p>A C native alternative to Kotlin Multiplatform, Flutter, Xamarin, React Native, etc. Build cross-platform applications natively with unparalleled performance.</p>
</article>
</div>
</section>
</main>
<!-- Native HTML Popover API -->
<div id="consulting-popover" popover class="custom-popover" aria-labelledby="popover-title">
<h3 id="popover-title" class="popover-title">Consulting Services</h3>
<p class="popover-body">Consultancy has been closed down in favour of product business as of March 2026.</p>
<button class="popover-button" popovertarget="consulting-popover" popovertargetaction="hide">Acknowledge</button>
</div>
<footer class="footer" role="contentinfo">
<div class="container">
<p>© 2026 Offscale. Automating the API lifecycle, from spec to package.</p>
<div class="footer-links">
<a href="https://github.com/SamuelMarks/cdd-ctl" target="_blank" rel="noopener" aria-label="cdd-ctl on GitHub">
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" style="width: 24px; height: 24px; vertical-align: middle; margin-right: 4px;">
<path d="M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.166 6.839 9.489.5.092.682-.217.682-.482 0-.237-.008-.866-.013-1.7-2.782.603-3.369-1.34-3.369-1.34-.454-1.156-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.831.092-.646.35-1.086.636-1.336-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.114 2.504.336 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.161 22 16.418 22 12c0-5.523-4.477-10-10-10z"/>
</svg>
GitHub
</a>
</div>
</div>
</footer>
<script src="script.js"></script>
</body>
</html>