Limits and Roadmap
Limits and Caveats
Runtime boundaries, behavior constraints, and design decisions to account for in production.
When to use
Section titled “When to use”Use this page before production rollout or when debugging behavior differences between runtimes.
Runtime boundaries
Section titled “Runtime boundaries”blurkit/noderequiressharpat runtime.blurkit/denorequiresblurkit-wasm-codecsand uses wasm-backed decode with canvas render.blurkit/browserrejects local filesystem path strings.blurkit/browserremote URL flow depends on CORS.blurkit/edgeprefers nativeImageDecoder+OffscreenCanvasand falls back to wasm.blurkit/cloudflaresupports remote URL input only.blurkit/wasmdecode support is PNG/JPEG/WebP only.blurkit/deno,blurkit/edgefallback, andblurkit/wasmrequireblurkit-wasm-codecs.
Cross-cutting behavior
Section titled “Cross-cutting behavior”encodeMany()is fail-fast.encodeManySettled()returns per-item success/failure envelopes.- Root import is condition-based (node/browser/worker), but explicit runtime subpaths are clearer.
Cache design
Section titled “Cache design”- Cache is part of
BlurKitOptionsso callers can enable reuse without wrappingencode(). - The contract is intentionally low-level (
getandset) to support sync and async adapters. - The package ships one helper:
createMemoryCache()fromblurkit/node. - Persistent storage policy is not defined by blurkit — invalidating entries across path, bytes, and options is caller-owned.
- Cache interface presence does not imply durable helper availability.
Not shipped by design
Section titled “Not shipped by design”- Framework-specific adapters are not shipped.