atproto utils for zig
zat.dev
atproto
sdk
zig
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 790 260" font-family="'SF Mono', 'Fira Code', 'Cascadia Code', Menlo, monospace">
2<rect width="790" height="260" fill="#1a1a2e" rx="8"/>
3<text x="395.0" y="28" text-anchor="middle" fill="#e0e0e0" font-size="15" font-weight="600">AT Protocol trust chain — compute</text>
4<text x="395.0" y="44" text-anchor="middle" fill="#666" font-size="11">192,161 records</text>
5<line x1="160.0" y1="53" x2="160.0" y2="211" stroke="#262640" stroke-width="1"/>
6<line x1="264.0" y1="53" x2="264.0" y2="211" stroke="#262640" stroke-width="1"/>
7<line x1="368.0" y1="53" x2="368.0" y2="211" stroke="#262640" stroke-width="1"/>
8<line x1="472.0" y1="53" x2="472.0" y2="211" stroke="#262640" stroke-width="1"/>
9<line x1="576.0" y1="53" x2="576.0" y2="211" stroke="#262640" stroke-width="1"/>
10<line x1="680.0" y1="53" x2="680.0" y2="211" stroke="#262640" stroke-width="1"/>
11<!-- zig: CAR 82.8ms + sig 0.6ms + MST walk+verify 39.3ms = 122.7ms -->
12<text x="146" y="79.0" text-anchor="end" fill="#c0c0c0" font-size="13">zig (zat)</text>
13<rect x="160.0" y="55" width="99.2" height="38" fill="#e8944a" rx="3"/>
14<text x="209.6" y="78.0" text-anchor="middle" fill="white" font-size="10" font-weight="500">CAR parse</text>
15<rect x="259.2" y="55" width="1.0" height="38" fill="#ed7d31" rx="3"/>
16<rect x="260.2" y="55" width="47.1" height="38" fill="#c55a11" rx="3"/>
17<text x="283.7" y="78.0" text-anchor="middle" fill="white" font-size="9" font-weight="500">MST</text>
18<text x="317.3" y="79.0" fill="#a0a0a0" font-size="12" font-weight="500">123ms</text>
19<!-- rust: CAR 301.0ms + sig 0.2ms + MST walk 120.9ms = 422.1ms -->
20<text x="146" y="137.0" text-anchor="end" fill="#c0c0c0" font-size="13">rust (rsky stack)</text>
21<rect x="160.0" y="113" width="360.5" height="38" fill="#e8944a" rx="3"/>
22<text x="340.3" y="136.0" text-anchor="middle" fill="white" font-size="10" font-weight="500">CAR parse</text>
23<rect x="520.5" y="113" width="1.0" height="38" fill="#ed7d31" rx="3"/>
24<rect x="521.5" y="113" width="144.8" height="38" fill="#c55a11" rx="3"/>
25<text x="593.9" y="136.0" text-anchor="middle" fill="white" font-size="10" font-weight="500">MST walk</text>
26<text x="676.3" y="137.0" fill="#a0a0a0" font-size="12" font-weight="500">422ms</text>
27<!-- go: CAR 424.7ms + sig 0.2ms + MST walk 9.3ms = 434.2ms -->
28<text x="146" y="195.0" text-anchor="end" fill="#c0c0c0" font-size="13">go (indigo)</text>
29<rect x="160.0" y="171" width="508.8" height="38" fill="#e8944a" rx="3"/>
30<text x="414.4" y="194.0" text-anchor="middle" fill="white" font-size="10" font-weight="500">CAR parse</text>
31<rect x="668.8" y="171" width="1.0" height="38" fill="#ed7d31" rx="3"/>
32<rect x="669.8" y="171" width="11.1" height="38" fill="#c55a11" rx="3"/>
33<text x="691.0" y="195.0" fill="#a0a0a0" font-size="12" font-weight="500">434ms</text>
34<!-- axis labels -->
35<text x="160.0" y="227" text-anchor="middle" fill="#606060" font-size="10">0</text>
36<text x="264.0" y="227" text-anchor="middle" fill="#606060" font-size="10">87ms</text>
37<text x="368.0" y="227" text-anchor="middle" fill="#606060" font-size="10">174ms</text>
38<text x="472.0" y="227" text-anchor="middle" fill="#606060" font-size="10">260ms</text>
39<text x="576.0" y="227" text-anchor="middle" fill="#606060" font-size="10">347ms</text>
40<text x="680.0" y="227" text-anchor="middle" fill="#606060" font-size="10">434ms</text>
41<!-- legend -->
42<rect x="195" y="241" width="10" height="10" fill="#e8944a" rx="2"/>
43<text x="209" y="249" fill="#808080" font-size="10">CAR parse</text>
44<rect x="287" y="241" width="10" height="10" fill="#ed7d31" rx="2"/>
45<text x="301" y="249" fill="#808080" font-size="10">sig verify</text>
46<rect x="375" y="241" width="10" height="10" fill="#c55a11" rx="2"/>
47<text x="389" y="249" fill="#808080" font-size="10">MST walk+verify</text>
48</svg>