Skip to content

Overview

GJSify is organised into four pillars, each implementing standard APIs on top of native GNOME libraries.

CategoryPackagesDescription
Node.js Modules41 + 1 metafs, net, http, crypto, stream, events, sqlite, ws, and more
Web APIs19 + 1 native bridge + 1 metafetch, XMLHttpRequest, WebSocket, WebRTC, WebAudio, Streams, DOMParser, MessageChannel, WebAssembly, and more
DOM & Bridges2 DOM + 6 bridgesCanvas2D, WebGL, DOM elements; GTK-backed Canvas/WebGL/Video/IFrame bridges
Adwaita for browser3@gjsify/adwaita-web, @gjsify/adwaita-fonts, @gjsify/adwaita-icons

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

Terminal @gjsify/terminal-native

Posix.isatty + ioctl TIOCGWINSZ + termios for @gjsify/tty

Shared ArrayBuffer @gjsify/sab-native

Cross-process shared memory + futex atomics for @gjsify/worker_threads

TLS @gjsify/tls-native

Direct OpenSSL access for @gjsify/tls

HTTP-Soup @gjsify/http-soup-bridge

Native Soup integration helpers for @gjsify/http

HTTP/2 @gjsify/http2-native

nghttp2 bridge for h2c, push streams, flow control

WebRTC @gjsify/webrtc-native

GLib.Idle signal marshalling for webrtcbin's streaming-thread callbacks

All packages are published to npm under the @gjsify scope:

yarn add @gjsify/fs @gjsify/http @gjsify/fetch

In most cases, you don’t install packages directly — the GJSify Rolldown plugin automatically aliases Node.js and Web API imports to their @gjsify/* counterparts during the GJS build.