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<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 420" font-family="-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif">
<defs>
<linearGradient id="pf" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#10b981"/>
<stop offset="100%" stop-color="#34d399"/>
</linearGradient>
<linearGradient id="pg" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#6b7280"/>
<stop offset="100%" stop-color="#9ca3af"/>
</linearGradient>
</defs>
<!-- Background -->
<rect width="800" height="420" rx="12" fill="#0f172a"/>
<!-- Title -->
<text x="400" y="36" text-anchor="middle" fill="#f1f5f9" font-size="16" font-weight="700">Runtime Performance โ Cold Start & Resource Usage</text>
<text x="400" y="54" text-anchor="middle" fill="#94a3b8" font-size="11">Native Rust binary vs. Python runtime overhead</text>
<!-- === Section 1: Startup Time === -->
<text x="50" y="90" fill="#e2e8f0" font-size="13" font-weight="600">Cold Start Time</text>
<text x="50" y="104" fill="#64748b" font-size="10">Time from process launch to first API response</text>
<text x="175" y="132" text-anchor="end" fill="#e2e8f0" font-size="11">OpenFang</text>
<rect x="180" y="118" width="52" height="22" rx="3" fill="url(#pf)"/>
<text x="238" y="133" fill="#10b981" font-size="12" font-weight="700"><200ms</text>
<text x="175" y="162" text-anchor="end" fill="#cbd5e1" font-size="11">OpenClaw</text>
<rect x="180" y="148" width="320" height="22" rx="3" fill="url(#pg)"/>
<text x="506" y="163" fill="#9ca3af" font-size="12" font-weight="600">~3.2s</text>
<text x="175" y="192" text-anchor="end" fill="#cbd5e1" font-size="11">AutoGPT</text>
<rect x="180" y="178" width="520" height="22" rx="3" fill="url(#pg)"/>
<text x="706" y="193" fill="#9ca3af" font-size="12" font-weight="600">~5.4s</text>
<!-- === Section 2: Binary / Install Size === -->
<text x="50" y="240" fill="#e2e8f0" font-size="13" font-weight="600">Install Footprint</text>
<text x="50" y="254" fill="#64748b" font-size="10">Total disk space required for full installation</text>
<text x="175" y="282" text-anchor="end" fill="#e2e8f0" font-size="11">OpenFang</text>
<rect x="180" y="268" width="36" height="22" rx="3" fill="url(#pf)"/>
<text x="222" y="283" fill="#10b981" font-size="12" font-weight="700">~32 MB</text>
<text x="290" y="283" fill="#475569" font-size="10">(single binary)</text>
<text x="175" y="312" text-anchor="end" fill="#cbd5e1" font-size="11">OpenClaw</text>
<rect x="180" y="298" width="230" height="22" rx="3" fill="url(#pg)"/>
<text x="416" y="313" fill="#9ca3af" font-size="12" font-weight="600">~200 MB</text>
<text x="490" y="313" fill="#475569" font-size="10">(Python + deps)</text>
<text x="175" y="342" text-anchor="end" fill="#cbd5e1" font-size="11">LangChain</text>
<rect x="180" y="328" width="400" height="22" rx="3" fill="url(#pg)"/>
<text x="586" y="343" fill="#9ca3af" font-size="12" font-weight="600">~350 MB</text>
<text x="660" y="343" fill="#475569" font-size="10">(Python + deps)</text>
<!-- Bottom note -->
<text x="400" y="390" text-anchor="middle" fill="#64748b" font-size="10">OpenFang compiled with Rust 1.93 (release profile, LTO enabled). Python frameworks measured with pip install + dependencies.</text>
<text x="400" y="404" text-anchor="middle" fill="#64748b" font-size="10">Startup = time until HTTP health endpoint responds. Install size = du -sh after clean install.</text>
</svg>