Overview
GJSify is organised into pillars, each implementing standard APIs on top of native GNOME libraries — plus a framework layer that glues them to GTK.
| Category | Packages | Description |
|---|---|---|
| Node.js Modules | 41 + 1 meta | fs, net, http, crypto, stream, events, sqlite, ws, and more |
| Web APIs | 19 + 1 native bridge + 1 meta | fetch, XMLHttpRequest, WebSocket, WebRTC, WebAudio, Streams, DOMParser, MessageChannel, WebAssembly, and more |
| DOM & Bridges | 2 DOM + 6 bridges | Canvas2D, WebGL, DOM elements; GTK-backed Canvas/WebGL/Video/IFrame bridges |
| Framework | app shell + tooling | @gjsify/adwaita-app native app shell, storybook, devtools |
| Adwaita for browser | 4 | @gjsify/adwaita-web, @gjsify/adwaita-core, @gjsify/adwaita-fonts, @gjsify/adwaita-icons |
| Reverse bridge | 1 | @gjsify/node-gi — GObject-Introspection on Node.js, Bun and Deno |
| Forward bridge | 1 | @gjsify/napi — load native Node.js N-API .node addons in GJS |
93% of Node modules and 58% of web standards covered — see the Node.js Modules and Web APIs subpages for the full interactive breakdown.
DOM ↔ GTK Bridges
Standard DOM elements, rendered natively
App code uses standard HTML elements. Each bridge translates the DOM lifecycle to a GTK widget — Cairo for 2D, OpenGL via libepoxy for WebGL, GStreamer for video, WebKit for iframes.
HTMLCanvasElement (2D) Gtk.DrawingArea @gjsify/canvas2d Cairo + PangoCairo
HTMLCanvasElement (WebGL/WebGL2) Gtk.GLArea @gjsify/webgl Vala/gwebgl + libepoxy
HTMLIFrameElement WebKit.WebView @gjsify/iframe WebKit 6.0
HTMLVideoElement Gtk.Picture @gjsify/video GStreamer + gtk4paintablesink
Native Vala bridges
@gjsify/terminal-native Posix.isatty + ioctl TIOCGWINSZ + termios for @gjsify/tty
@gjsify/sab-native Cross-process shared memory + futex atomics for @gjsify/worker_threads
@gjsify/tls-native Direct OpenSSL access for @gjsify/tls
@gjsify/http-soup-bridge Native Soup integration helpers for @gjsify/http
@gjsify/http2-native nghttp2 bridge for h2c, push streams, flow control
@gjsify/webrtc-native GLib.Idle signal marshalling for webrtcbin's streaming-thread callbacks
Installation
Section titled “Installation”All packages are published to npm under the @gjsify scope:
gjsify install @gjsify/fs @gjsify/http @gjsify/fetchnpm install @gjsify/fs @gjsify/http @gjsify/fetchbun add @gjsify/fs @gjsify/http @gjsify/fetchdeno add npm:@gjsify/fs npm:@gjsify/http npm:@gjsify/fetchIn most cases, you don’t install packages directly — gjsify build automatically aliases Node.js and Web API imports to the right implementation for the chosen target: @gjsify/* polyfills on GJS, the native platform on Node.js and in the browser.