<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" class="marks" width="1940" height="904" viewBox="0 0 970 452"><rect width="970" height="452" fill="white"/><g fill="none" stroke-miterlimit="10" transform="translate(87,29)"><g class="mark-group role-frame root" role="graphics-object" aria-roledescription="group mark container"><g transform="translate(0,0)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z"/><g><g class="mark-group role-row-header row_header" role="graphics-object" aria-roledescription="group mark container"><g transform="translate(0,0)"><path class="background" aria-hidden="true" d="M0,0h0v60h0Z"/><g><g class="mark-group role-axis" role="graphics-symbol" aria-roledescription="axis" aria-label="Y-axis for a discrete scale with 3 values: encode, decode, total"><g transform="translate(0.5,0.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-domain" pointer-events="none"><line transform="translate(0,0)" x2="0" y2="60" stroke="#888" stroke-width="1" opacity="1"/></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-group role-title"><g transform="translate(-63.400001525878906,30)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-text role-title-text" role="graphics-symbol" aria-roledescription="title" aria-label="Title text 'msgspec'" pointer-events="none"><text text-anchor="start" transform="translate(0,4)" font-family="sans-serif" font-size="12px" fill="#000" opacity="1">msgspec</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g><g transform="translate(0,80)"><path class="background" aria-hidden="true" d="M0,0h0v60h0Z"/><g><g class="mark-group role-axis" role="graphics-symbol" aria-roledescription="axis" aria-label="Y-axis for a discrete scale with 3 values: encode, decode, total"><g transform="translate(0.5,0.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-domain" pointer-events="none"><line transform="translate(0,0)" x2="0" y2="60" stroke="#888" stroke-width="1" opacity="1"/></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-group role-title"><g transform="translate(-81.53333282470703,30)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-text role-title-text" role="graphics-symbol" aria-roledescription="title" aria-label="Title text 'mashumaro'" pointer-events="none"><text text-anchor="start" transform="translate(0,4)" font-family="sans-serif" font-size="12px" fill="#000" opacity="1">mashumaro</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g><g transform="translate(0,160)"><path class="background" aria-hidden="true" d="M0,0h0v60h0Z"/><g><g class="mark-group role-axis" role="graphics-symbol" aria-roledescription="axis" aria-label="Y-axis for a discrete scale with 3 values: encode, decode, total"><g transform="translate(0.5,0.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-domain" pointer-events="none"><line transform="translate(0,0)" x2="0" y2="60" stroke="#888" stroke-width="1" opacity="1"/></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-group role-title"><g transform="translate(-44.53333282470703,30)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-text role-title-text" role="graphics-symbol" aria-roledescription="title" aria-label="Title text 'cattrs'" pointer-events="none"><text text-anchor="start" transform="translate(0,4)" font-family="sans-serif" font-size="12px" fill="#000" opacity="1">cattrs</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g><g transform="translate(0,240)"><path class="background" aria-hidden="true" d="M0,0h0v60h0Z"/><g><g class="mark-group role-axis" role="graphics-symbol" aria-roledescription="axis" aria-label="Y-axis for a discrete scale with 3 values: encode, decode, total"><g transform="translate(0.5,0.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-domain" pointer-events="none"><line transform="translate(0,0)" x2="0" y2="60" stroke="#888" stroke-width="1" opacity="1"/></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-group role-title"><g transform="translate(-80.46666717529297,30)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-text role-title-text" role="graphics-symbol" aria-roledescription="title" aria-label="Title text 'pydantic v2'" pointer-events="none"><text text-anchor="start" transform="translate(0,4)" font-family="sans-serif" font-size="12px" fill="#000" opacity="1">pydantic v2</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g><g transform="translate(0,320)"><path class="background" aria-hidden="true" d="M0,0h0v60h0Z"/><g><g class="mark-group role-axis" role="graphics-symbol" aria-roledescription="axis" aria-label="Y-axis for a discrete scale with 3 values: encode, decode, total"><g transform="translate(0.5,0.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-domain" pointer-events="none"><line transform="translate(0,0)" x2="0" y2="60" stroke="#888" stroke-width="1" opacity="1"/></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-group role-title"><g transform="translate(-80.46666717529297,30)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-text role-title-text" role="graphics-symbol" aria-roledescription="title" aria-label="Title text 'pydantic v1'" pointer-events="none"><text text-anchor="start" transform="translate(0,4)" font-family="sans-serif" font-size="12px" fill="#000" opacity="1">pydantic v1</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g></g><g class="mark-group role-column-footer column_footer" role="graphics-object" aria-roledescription="group mark container"><g transform="translate(0,380)"><path class="background" aria-hidden="true" d="M0,0h800v0h-800Z"/><g><g class="mark-group role-axis" role="graphics-symbol" aria-roledescription="axis" aria-label="X-axis titled 'Time (ms)' for a linear scale with values from 0 to 45"><g transform="translate(0.5,0.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-tick" pointer-events="none"><line transform="translate(0,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(36,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(71,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(107,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(142,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(178,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(213,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(249,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(284,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(320,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(356,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(391,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(427,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(462,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(498,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(533,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(569,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(604,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(640,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(676,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(711,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(747,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(782,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/></g><g class="mark-text role-axis-label" pointer-events="none"><text text-anchor="start" transform="translate(0,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">0</text><text text-anchor="middle" transform="translate(35.55555555555556,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">2</text><text text-anchor="middle" transform="translate(71.11111111111111,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">4</text><text text-anchor="middle" transform="translate(106.66666666666667,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">6</text><text text-anchor="middle" transform="translate(142.22222222222223,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">8</text><text text-anchor="middle" transform="translate(177.77777777777777,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">10</text><text text-anchor="middle" transform="translate(213.33333333333334,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">12</text><text text-anchor="middle" transform="translate(248.88888888888889,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">14</text><text text-anchor="middle" transform="translate(284.44444444444446,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">16</text><text text-anchor="middle" transform="translate(320,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">18</text><text text-anchor="middle" transform="translate(355.55555555555554,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">20</text><text text-anchor="middle" transform="translate(391.1111111111111,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">22</text><text text-anchor="middle" transform="translate(426.6666666666667,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">24</text><text text-anchor="middle" transform="translate(462.2222222222222,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">26</text><text text-anchor="middle" transform="translate(497.77777777777777,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">28</text><text text-anchor="middle" transform="translate(533.3333333333333,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">30</text><text text-anchor="middle" transform="translate(568.8888888888889,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">32</text><text text-anchor="middle" transform="translate(604.4444444444445,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">34</text><text text-anchor="middle" transform="translate(640,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">36</text><text text-anchor="middle" transform="translate(675.5555555555555,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">38</text><text text-anchor="middle" transform="translate(711.1111111111111,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">40</text><text text-anchor="middle" transform="translate(746.6666666666666,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">42</text><text text-anchor="middle" transform="translate(782.2222222222222,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">44</text></g><g class="mark-rule role-axis-domain" pointer-events="none"><line transform="translate(0,0)" x2="800" y2="0" stroke="#888" stroke-width="1" opacity="1"/></g><g class="mark-text role-axis-title" pointer-events="none"><text text-anchor="middle" transform="translate(400,36)" font-family="sans-serif" font-size="12px" font-weight="bold" fill="#000" opacity="1">Time (ms)</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g></g><g class="mark-group role-scope cell" role="graphics-object" aria-roledescription="group mark container"><g transform="translate(0,0)"><path class="background" aria-hidden="true" d="M0,0h800v60h-800Z"/><g><g class="mark-rect role-mark child_marks" role="graphics-object" aria-roledescription="rect mark container"><path aria-label="time: 0.167274794; method: encode; tooltip: 0.167 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,1h2.9737741155582222v18h-2.9737741155582222Z" fill="#4c78a8"/><path aria-label="time: 0.422205797999; method: decode; tooltip: 0.422 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,21h7.505880853309968v18h-7.505880853309968Z" fill="#9ecae9"/><path aria-label="time: 0.589480591999; method: total; tooltip: 0.589 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,41h10.479654968868191v18h-10.479654968868191Z" fill="#f58518"/></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g><g transform="translate(0,80)"><path class="background" aria-hidden="true" d="M0,0h800v60h-800Z"/><g><g class="mark-rect role-mark child_marks" role="graphics-object" aria-roledescription="rect mark container"><path aria-label="time: 0.797896412001; method: encode; tooltip: 0.798 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,1h14.184825102242435v18h-14.184825102242435Z" fill="#4c78a8"/><path aria-label="time: 2.67868301; method: decode; tooltip: 2.68 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,21h47.62103128887247v18h-47.62103128887247Z" fill="#9ecae9"/><path aria-label="time: 3.476579422; method: total; tooltip: 3.48 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,41h61.80585639111491v18h-61.80585639111491Z" fill="#f58518"/></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g><g transform="translate(0,160)"><path class="background" aria-hidden="true" d="M0,0h800v60h-800Z"/><g><g class="mark-rect role-mark child_marks" role="graphics-object" aria-roledescription="rect mark container"><path aria-label="time: 2.06539629; method: encode; tooltip: 2.07 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,1h36.71815626666002v18h-36.71815626666002Z" fill="#4c78a8"/><path aria-label="time: 3.39233487; method: decode; tooltip: 3.39 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,21h60.30817546658606v18h-60.30817546658606Z" fill="#9ecae9"/><path aria-label="time: 5.45773116; method: total; tooltip: 5.46 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,41h97.02633173324607v18h-97.02633173324607Z" fill="#f58518"/></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g><g transform="translate(0,240)"><path class="background" aria-hidden="true" d="M0,0h800v60h-800Z"/><g><g class="mark-rect role-mark child_marks" role="graphics-object" aria-roledescription="rect mark container"><path aria-label="time: 3.47029566; method: encode; tooltip: 3.47 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,1h61.69414506665716v18h-61.69414506665716Z" fill="#4c78a8"/><path aria-label="time: 3.8069566; method: decode; tooltip: 3.81 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,21h67.6792284444673v18h-67.6792284444673Z" fill="#9ecae9"/><path aria-label="time: 7.27725226; method: total; tooltip: 7.28 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,41h129.37337351112447v18h-129.37337351112447Z" fill="#f58518"/></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g><g transform="translate(0,320)"><path class="background" aria-hidden="true" d="M0,0h800v60h-800Z"/><g><g class="mark-rect role-mark child_marks" role="graphics-object" aria-roledescription="rect mark container"><path aria-label="time: 19.61492505; method: encode; tooltip: 19.6 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,1h348.7097786669943v18h-348.7097786669943Z" fill="#4c78a8"/><path aria-label="time: 25.2885108; method: decode; tooltip: 25.3 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,21h449.57352533270347v18h-449.57352533270347Z" fill="#9ecae9"/><path aria-label="time: 44.90343585; method: total; tooltip: 44.9 ms" role="graphics-symbol" aria-roledescription="bar" d="M0,41h798.2833039996978v18h-798.2833039996978Z" fill="#f58518"/></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g></g><g class="mark-group role-legend" role="graphics-symbol" aria-roledescription="legend" aria-label="Symbol legend for fill color with 3 values: encode, decode, total"><g transform="translate(818,0)"><path class="background" aria-hidden="true" d="M0,0h60v40h-60Z" pointer-events="none"/><g><g class="mark-group role-legend-entry"><g transform="translate(0,0)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-group role-scope" role="graphics-object" aria-roledescription="group mark container"><g transform="translate(0,0)"><path class="background" aria-hidden="true" d="M0,0h59.95000076293945v12h-59.95000076293945Z" pointer-events="none" opacity="1"/><g><g class="mark-symbol role-legend-symbol" pointer-events="none"><path transform="translate(6,6)" d="M-5,-5h10v10h-10Z" fill="#4c78a8" stroke-width="1.5" opacity="1"/></g><g class="mark-text role-legend-label" pointer-events="none"><text text-anchor="start" transform="translate(16,10)" font-family="sans-serif" font-size="12px" fill="#000" opacity="1">encode</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g><g transform="translate(0,14)"><path class="background" aria-hidden="true" d="M0,0h59.95000076293945v12h-59.95000076293945Z" pointer-events="none" opacity="1"/><g><g class="mark-symbol role-legend-symbol" pointer-events="none"><path transform="translate(6,6)" d="M-5,-5h10v10h-10Z" fill="#9ecae9" stroke-width="1.5" opacity="1"/></g><g class="mark-text role-legend-label" pointer-events="none"><text text-anchor="start" transform="translate(16,10)" font-family="sans-serif" font-size="12px" fill="#000" opacity="1">decode</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g><g transform="translate(0,28)"><path class="background" aria-hidden="true" d="M0,0h59.95000076293945v12h-59.95000076293945Z" pointer-events="none" opacity="1"/><g><g class="mark-symbol role-legend-symbol" pointer-events="none"><path transform="translate(6,6)" d="M-5,-5h10v10h-10Z" fill="#f58518" stroke-width="1.5" opacity="1"/></g><g class="mark-text role-legend-label" pointer-events="none"><text text-anchor="start" transform="translate(16,10)" font-family="sans-serif" font-size="12px" fill="#000" opacity="1">total</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-group role-title"><g transform="translate(-81.53333282470703,-24)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-text role-title-text" role="graphics-symbol" aria-roledescription="title" aria-label="Title text 'Benchmark - JSON Serialization &amp; Validation'" pointer-events="none"><text text-anchor="start" transform="translate(0,11)" font-family="sans-serif" font-size="14px" font-weight="bold" fill="#000" opacity="1">Benchmark - JSON Serialization &amp; Validation</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g></g></g></svg>