Now resvg has been upgraded from v0.29.0 to v0.34.0, bringing with it a host of new SVG features and performance improvements.
Support SVG2 mask-type property.
Allows quadratic Bézier curves: text might render slightly differently (better?). This is because TrueType fonts contain only quadratic curves and we were converting them to cubic before.
Clipping and masking is up to 20% faster.
Reduces the peak memory usage for SVGs with large paths (in terms of the number of segments).
A new rendering algorithm.
When rendering isolated groups,
aka layers, we have to know the layer bounding box beforehand, which is ridiculously hard in SVG.
Previously, resvg would simply use the canvas size for all the layers.
This means that to render a 10x10px layer on a 1000x1000px canvas, we would have to allocate and then blend
a 1000x1000px layer, which is just a waste of CPU cycles.
The new rendering algorithm is able to calculate layer bounding boxes, which dramatically improves
performance when rendering a lot of tiny layers on a large canvas.
Moreover, it makes performance more linear with a canvas size increase.
The paris-30k.svg
sample from google/forma is rendered 115 times faster on M1 Pro now.
From ~33760ms down to ~290ms. 5269x3593px canvas.
If we restrict the canvas to 1000x1000px, which would contain only the actual paris-30k.svg content,
then we're 13 times faster. From ~3252ms down to ~253ms.
Added
feat: upgrade to usvg/resvg 0.34.0. #268 Thanks to @zimond
Now we can finally loading custom fonts in Wasm, including the WOFF2 format (see playground), thanks to the high-performance woff2-rs.
In addition, we implemented smarter default font family fallback. the defaultFontFamily option can now be omitted. We'll read the font-family from the incoming fonts and set it to the default.
<script src="https://unpkg.com/@resvg/resvg-wasm"></script>
<script>
(async function () {
await resvg.initWasm(fetch('https://unpkg.com/@resvg/resvg-wasm/index_bg.wasm'))
const font = await fetch('./fonts/Pacifico-Regular.woff2')
Now resvg has been upgraded from v0.29.0 to v0.34.0, bringing with it a host of new SVG features and performance improvements.
Support SVG2 mask-type property.
Allows quadratic Bézier curves: text might render slightly differently (better?). This is because TrueType fonts contain only quadratic curves and we were converting them to cubic before.
Clipping and masking is up to 20% faster.
Reduces the peak memory usages for SVGs with large paths (in terms of the number of segments).
A new rendering algorithm.
When rendering isolated groups,
aka layers, we have to know the layer bounding box beforehand, which is ridiculously hard in SVG.
Previously, resvg would simply use the canvas size for all the layers.
Meaning that to render a 10x10px layer on a 1000x1000px canvas, we would have to allocate and then blend
a 1000x1000px layer, which is just a waste of CPU cycles.
The new rendering algorithm is able to calculate layer bounding boxes, which dramatically improves
performance when rendering a lot of tiny layers on a large canvas.
Moreover, it makes performance more linear with a canvas size increase.
The paris-30k.svg
sample from google/forma is rendered 115 times faster on M1 Pro now.
From ~33760ms down to ~290ms. 5269x3593px canvas.
If we restrict the canvas to 1000x1000px, which would contain only the actual paris-30k.svg content,
then we're 13 times faster. From ~3252ms down to ~253ms.
Added
feat: upgrade to usvg/resvg 0.34.0. #268 Thanks to @zimond
[2.5.0] - 2023-10-16
Added
Now we can finally loading custom fonts in Wasm, including the WOFF2 format (see playground), thanks to the high-performance woff2-rs.
In addition, we implemented smarter default font family fallback. the defaultFontFamily option can now be omitted. We'll read the font-family from the incoming fonts and set it to the default.
<script src="https://unpkg.com/@resvg/resvg-wasm"></script>
<script>
;(async function () {
await resvg.initWasm(fetch('https://unpkg.com/@resvg/resvg-wasm/index_bg.wasm'))
const font = await fetch('./fonts/Pacifico-Regular.woff2')
if (!font.ok) return
const fontData = await font.arrayBuffer()
const buffer = new Uint8Array(fontData)
Bumps the all group with 25 updates:
5.0.8
5.0.15
5.0.8
5.0.15
13.5.3
14.0.1
2.4.1
2.6.0
20.8.0
20.8.10
18.2.23
18.2.33
18.2.8
18.2.14
0.5.17
0.5.20
8.50.0
8.52.0
13.5.3
14.0.1
0.279.0
0.291.0
13.5.3
14.0.1
11.0.3
11.0.4
3.22.2
3.22.4
1.5.0
2.1.0
6.1.3
6.1.4
1.8.2
1.8.3
2.0.1
2.0.3
29.5.5
29.5.7
6.7.3
6.9.1
6.7.3
6.9.1
5.0.0
5.0.1
0.5.4
0.5.6
3.3.3
3.3.5
3.13.0
3.14.0
Updates
@fontsource-variable/inter
from 5.0.8 to 5.0.15Commits
Updates
@fontsource/inter
from 5.0.8 to 5.0.15Commits
Updates
@next/font
from 13.5.3 to 14.0.1Release notes
Sourced from
@next/font
's releases.... (truncated)
Commits
4df888a
v14.0.141dec2c
v14.0.1-canary.59d49afc
v14.0.1-canary.47e1f57b
Update font data (#57728)fc1ecc4
v14.0.1-canary.354a9da0
v14.0.1-canary.2c70506d
v14.0.1-canary.16a63c4f
v14.0.1-canary.0b546d8b
v14.0.0356dc42
v13.5.7-canary.37Updates
@resvg/resvg-js
from 2.4.1 to 2.6.0Release notes
Sourced from
@resvg/resvg-js
's releases.... (truncated)
Changelog
Sourced from
@resvg/resvg-js
's changelog.... (truncated)
Commits
cfca7ad
2.6.0065b7f4
chore(deps): update actions/checkout action to v4ce9b094
chore(deps): update yarn to v3.6.46d3968a
doc: updage Readme.md0337aaa
test: fix test and update the example resultsc041dd5
feat: upgrade to a newer resvg forkde8b059
test: fix fontBuffers test88595e1
feat: upgrade to usvg/resvg 0.34b07a26f
2.5.04e68970
fix(deps): update rust crate svgtypes to 0.12.0Updates
@types/node
from 20.8.0 to 20.8.10Commits
Updates
@types/react
from 18.2.23 to 18.2.33Commits
Updates
@types/react-dom
from 18.2.8 to 18.2.14Commits
Updates
@vercel/og
from 0.5.17 to 0.5.20Updates
eslint
from 8.50.0 to 8.52.0Release notes
Sourced from eslint's releases.
... (truncated)
Changelog
Sourced from eslint's changelog.
Commits
331cf62
8.52.07dc28ed
Build: changelog update for 8.52.06d1f0c2
chore: upgrade@eslint/js
@8
.52.0 (#17671)d63d4fe
chore: package.json update for@eslint/js
release476d58a
docs: Add note about invalid CLI flags when using flat config. (#17664)5de9637
fix: Ensure shared references in rule configs are separated (#17666)f30cefe
test: fix FlatESLint tests for caching (#17658)ef650cb
test: update tests for no-promise-executor-return (#17661)70648ee
feat: report-unused-disable-directive to report unused eslint-enable (#17611)dcfe573
fix: add preceding semicolon in suggestions ofno-object-constructor
(#17649)Updates
eslint-config-next
from 13.5.3 to 14.0.1Release notes
Sourced from eslint-config-next's releases.
... (truncated)
Commits
4df888a
v14.0.141dec2c
v14.0.1-canary.59d49afc
v14.0.1-canary.4fc1ecc4
v14.0.1-canary.354a9da0
v14.0.1-canary.2c70506d
v14.0.1-canary.16a63c4f
v14.0.1-canary.0b546d8b
v14.0.0356dc42
v13.5.7-canary.37fc1b6c4
v13.5.7-canary.36Updates
lucide-react
from 0.279.0 to 0.291.0Release notes
Sourced from lucide-react's releases.
... (truncated)
Commits
f6fd369
Github Actions cleanup - Use setup node for pnpm cache (#1616)c5cfbed
add info about dynamic imports to nextjs docs (#1564)Updates
next
from 13.5.3 to 14.0.1Release notes
Sourced from next's releases.
... (truncated)
Commits
4df888a
v14.0.141dec2c
v14.0.1-canary.5e26c901
Update React from 8c8ee9ee6 to 0c6348758 and types (#57772)676d1ee
Remove extra CI step and lock Node.js version (#57769)0623a4f
Modify tailwindcss related dependency ofcreate-next-app
(#57262)6dc7c3c
fix(turbopack): don't match empty route groups (The latest updates on your projects. Learn more about Vercel for Git ↗︎
New, updated, and removed dependencies detected. Learn more about Socket for GitHub ↗︎
+0
+1
+10/-12
+3/-2
+0/-0
+0/-0
+10/-11
+0/-0
+12/-12
+1/-1
+2/-1
+0/-0
+0/-0
+1/-1
+13/-14
+8/-9
+1/-0
+0/-0
+3/-4
+3/-2
+0/-0
+0/-0
+0/-0
🚮 Removed packages: @next/font@13.5.3, eslint@8.50.0