npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@kmamal/gpu

v0.2.1

Published

WebGPU for Node.js via Google Dawn

Downloads

420

Readme

@kmamal/gpu

Package Dependencies License: MIT

WebGPU for Node.js via Google Dawn. Allows you to use WebGPU without a browser.

It should work on Linux, Mac, and Windows. Prebuilt binaries are available for x64 architectures, and arm-based Macs.

Instructions

Check the examples for how to use this package. You can use both compute and render pipelines. For render pipelines, you can either render the result to a buffer and save it as an image, or you can use @kmamal/sdl to render directly to a window as in this example.

API Reference

Contents

Globals

gpu.create(flags)

  • flags: <string>[] An array of flags to pass to dawn_node.

Creates a WebGPU instance object. The returned object is equivalent to the browser's GPU object.

Any flags passed to the create() function must be in the form of 'key=value'. It is usually a good idea to pass at least the 'verbose=1' flag to help with debugging.

gpu.destroy(instance)

Instances created with gpu.create() need to be cleaned up before the program exits. Usually you will call gpu.destroy(instance) right after calling device.destroy().

gpu.renderGPUDeviceToWindow(options)

  • options: <object>
    • device: <GPUDevice> The device to render from.
    • window: <Window> The window to render to.
    • presentMode: <string> The swapchain mode. Default: 'fifo'

Crates a Renderer object that is used to connect a device to a window so that the device output renders directly to the window.

Possible options for presentMode are 'fifo', 'fifoRelaxed', 'immediate', and 'mailbox'.

class Renderer

This class is not directly exposed by the API so you can't use it with the new operator. Instead, objects returned by gpu.renderGPUDeviceToWindow() are of this type.

renderer.getCurrentTexture()

Return an object of type GPUTexture. Things drawn to the texture will appear on the window when renderer.swap() is called.

renderer.getCurrentTextureView()

Return an object of type GPUTextureView. Things drawn to the texture view will appear on the window when renderer.swap() is called.

renderer.swap()

Call this function after your render pass to display the results on the window.

renderer.resize()

Must be called after the window has been resized.