@napi-rs/canvas
Advanced tools
Comparing version 0.1.61 to 0.1.62
@@ -198,3 +198,5 @@ // Clear all type of caches in Skia | ||
alt: string | ||
src: Buffer | ||
// the src can be a Uint8Array or a string | ||
// if it's a string, it can be a file path, a data URL, a remote URL, or a SVG string | ||
src: Uint8Array | string | ||
onload?(): void | ||
@@ -201,0 +203,0 @@ onerror?(err: Error): void |
@@ -39,3 +39,3 @@ const fs = require('fs') | ||
if (await exists(source)) { | ||
return createImage(await fs.promises.readFile(source), options.alt) | ||
return createImage(source, options.alt) | ||
} else { | ||
@@ -42,0 +42,0 @@ // the source is a remote url here |
{ | ||
"name": "@napi-rs/canvas", | ||
"version": "0.1.61", | ||
"version": "0.1.62", | ||
"description": "Canvas for Node.js with skia backend", | ||
@@ -82,3 +82,2 @@ "main": "index.js", | ||
"ava": "^6.1.1", | ||
"benny": "^3.7.1", | ||
"canvas": "^2.11.2", | ||
@@ -102,2 +101,3 @@ "canvaskit-wasm": "^0.39.1", | ||
"table": "^6.8.1", | ||
"tinybench": "^3.0.6", | ||
"typescript": "^5.3.3" | ||
@@ -142,12 +142,12 @@ }, | ||
"optionalDependencies": { | ||
"@napi-rs/canvas-win32-x64-msvc": "0.1.61", | ||
"@napi-rs/canvas-darwin-x64": "0.1.61", | ||
"@napi-rs/canvas-linux-x64-gnu": "0.1.61", | ||
"@napi-rs/canvas-linux-arm-gnueabihf": "0.1.61", | ||
"@napi-rs/canvas-linux-x64-musl": "0.1.61", | ||
"@napi-rs/canvas-linux-arm64-gnu": "0.1.61", | ||
"@napi-rs/canvas-linux-arm64-musl": "0.1.61", | ||
"@napi-rs/canvas-darwin-arm64": "0.1.61", | ||
"@napi-rs/canvas-android-arm64": "0.1.61" | ||
"@napi-rs/canvas-win32-x64-msvc": "0.1.62", | ||
"@napi-rs/canvas-darwin-x64": "0.1.62", | ||
"@napi-rs/canvas-linux-x64-gnu": "0.1.62", | ||
"@napi-rs/canvas-linux-arm-gnueabihf": "0.1.62", | ||
"@napi-rs/canvas-linux-x64-musl": "0.1.62", | ||
"@napi-rs/canvas-linux-arm64-gnu": "0.1.62", | ||
"@napi-rs/canvas-linux-arm64-musl": "0.1.62", | ||
"@napi-rs/canvas-darwin-arm64": "0.1.62", | ||
"@napi-rs/canvas-android-arm64": "0.1.62" | ||
} | ||
} |
@@ -134,8 +134,20 @@ # `skr canvas` | ||
``` | ||
OS: Windows 10 x86_64 | ||
Host: Micro-Star International Co., Ltd. MS-7C35 | ||
Kernel: 10.0.19043 | ||
Terminal: Windows Terminal | ||
CPU: AMD Ryzen 9 5950X (32) @ 3.400GHz | ||
Memory: 32688MiB | ||
,MMMM. Host - xxxxxxxxxxxxxxxxxxxxxxx | ||
.MMMMMM Machine - Mac15,9 | ||
MMMMM, Kernel - 24.0.0 | ||
.;MMMMM:' MMMMMMMMMM;. OS - macOS 15.0.1 Sequoia | ||
MMMMMMMMMMMMNWMMMMMMMMMMM: DE - Aqua | ||
.MMMMMMMMMMMMMMMMMMMMMMMMWM. WM - Quartz Compositor | ||
MMMMMMMMMMMMMMMMMMMMMMMMM. Packages - 194 (Homebrew), 32 (cargo) | ||
;MMMMMMMMMMMMMMMMMMMMMMMM: Shell - zsh | ||
:MMMMMMMMMMMMMMMMMMMMMMMM: Terminal - warpterminal (Version v0.2024.10.23.14.49.stable_00) | ||
.MMMMMMMMMMMMMMMMMMMMMMMMM. Resolution - 5120x2880@160fps (as 2560x1440) | ||
MMMMMMMMMMMMMMMMMMMMMMMMMMM. 2992x1934@120fps (as 1496x967) | ||
.MMMMMMMMMMMMMMMMMMMMMMMMMM. 2232x1512@60fps (as 1116x756) | ||
MMMMMMMMMMMMMMMMMMMMMMMM Uptime - 1d 2h 32m | ||
;MMMMMMMMMMMMMMMMMMMM. CPU - Apple M3 Max (16) | ||
.MMMM,. .MMMM,. CPU Load - 16% | ||
Memory - 50.1 GB / 134.2 GB | ||
Battery - 78% & Discharging | ||
Disk Space - 624.0 GB / 994.7 GB | ||
``` | ||
@@ -145,36 +157,18 @@ | ||
β― yarn bench | ||
> @napi-rs/canvas@0.0.9 bench D:\workspace\skia-rs | ||
> node -r @swc-node/register benchmark/bench.ts | ||
Running "Draw house" suite... | ||
Progress: 100% | ||
skia-canvas: | ||
26 ops/s, Β±0.70% | slowest, 29.73% slower | ||
node-canvas: | ||
30 ops/s, Β±6.95% | 18.92% slower | ||
@napi-rs/canvas: | ||
37 ops/s, Β±6.30% | fastest | ||
Finished 3 cases! | ||
Fastest: @napi-rs/canvas | ||
Slowest: skia-canvas | ||
Running "Draw gradient" suite... | ||
Progress: 100% | ||
skia-canvas: | ||
36 ops/s, Β±6.12% | 14.29% slower | ||
node-canvas: | ||
34 ops/s, Β±5.60% | slowest, 19.05% slower | ||
@napi-rs/canvas: | ||
42 ops/s, Β±0.53% | fastest | ||
Finished 3 cases! | ||
Fastest: @napi-rs/canvas | ||
Slowest: node-canvas | ||
Draw a House and export to PNG | ||
βββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬ββββββββββ | ||
β (index) β Task name β Latency average (ns) β Latency median (ns) β Throughput average (ops/s) β Throughput median (ops/s) β Samples β | ||
βββββββββββΌββββββββββββββββββΌββββββββββββββββββββββββΌβββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββΌββββββββββ€ | ||
β 0 β '@napi-rs/skia' β '14676992.14 Β± 0.68%' β '14602333.00' β '68 Β± 0.59%' β '68' β 69 β | ||
β 1 β 'skia-canvas' β '21167809.17 Β± 2.05%' β '20960021.00 Β± 13646.00' β '47 Β± 1.31%' β '48' β 64 β | ||
β 2 β 'node-canvas' β '16552027.42 Β± 0.70%' β '16451291.50 Β± 2208.50' β '60 Β± 0.62%' β '61' β 64 β | ||
βββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββββββββ΄βββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββ΄ββββββββββ | ||
Draw Gradient and export to PNG | ||
βββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬ββββββββββ | ||
β (index) β Task name β Latency average (ns) β Latency median (ns) β Throughput average (ops/s) β Throughput median (ops/s) β Samples β | ||
βββββββββββΌββββββββββββββββββΌββββββββββββββββββββββββΌββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββΌββββββββββ€ | ||
β 0 β '@napi-rs/skia' β '15228495.58 Β± 0.53%' β '15146312.50 Β± 1187.50' β '66 Β± 0.48%' β '66' β 66 β | ||
β 1 β 'skia-canvas' β '21725564.41 Β± 2.20%' β '21412520.50 Β± 2104.50' β '46 Β± 1.39%' β '47' β 64 β | ||
β 2 β 'node-canvas' β '17976022.14 Β± 1.53%' β '17563479.50 Β± 5104.50' β '56 Β± 1.38%' β '57' β 64 β | ||
βββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββββββββ΄ββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββ΄ββββββββββ | ||
``` | ||
@@ -181,0 +175,0 @@ |
72087
1606
362