Skip to content
tom96daPublic

About

The ultra-minimalist desktop runtime: Direct GPU rendering meets QuickJS. No Chromium, no overhead, pure performance.

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

1,036 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Incarnative.js

npm version node version license CI

Incarnative.js

Incarnative.js (inca) is an ultra-lightweight, Webview-free desktop application framework powered by GPUI, QuickJS, and custom renderers.

✨ Features

  • 🍃 Webview-Free Architecture: Bypasses heavy Chromium/DOM overhead entirely.
  • ⚡ Direct GPU Rendering: Powered by Rust & GPUI for smooth, native-speed UI rendering.
  • 🚀 Micro-sized Runtime: Employs QuickJS for sub-second startup times and minimal memory footprint.
  • 🎨 Frontend Agnostic: Designed with first-class Vue 3 support, expanding to React and beyond.

🔧 Tech Stack

  • ⚙️ Engine / Core: Rust (gpui)
  • 💛 JS Runtime: QuickJS (rquickjs)
  • 🖥️ Frontend: Vue 3 / Custom Renderer
  • 📦 Bundler: Vite, in library/build mode (not a browser dev server) — see ARCHITECTURE.md

🚀 Getting started

$ npm install vue incajs
$ npm install -D @incajs/cli

Drop a src/App.vue. No entry point or bootstrapping code needed: inca mounts it as the app itself.

<script setup>
import { ref } from "vue";

const clicks = ref(0);
</script>

<template>
  <div :style="{ color: '#ffffff' }" @click="clicks++">
    Clicked {{ clicks }} time(s)
  </div>
</template>

Run inca dev for a live-reloading window. Run inca build for a one-off bundle, or inca package for a distributable app.

Host binary

inca-host's prebuilt binary is pulled in automatically as a platform-specific optional dependency. Neither Cargo nor Rust are needed to run an app.

Platform Status
Linux x64 Limited support*
Linux arm64 Limited support*
macOS arm64 Supported
macOS x64 Supported
Windows x64 Planned
Windows arm64 Planned

* Packaged apps still need these libraries on the machine that runs them — inca package doesn't bundle them yet.

Linux runtime requirements

The host binary is built against glibc 2.35, so it needs Ubuntu 22.04, Debian 12, or anything newer.

On Debian/Ubuntu, it also needs:

  • libxcb1
  • libfontconfig1
  • libfreetype6
  • libxkbcommon0
  • libxkbcommon-x11-0
  • libvulkan1
  • a Vulkan driver package, such as mesa-vulkan-drivers

Other distributions use the same libraries under different package names. They're present by default on most desktops, but a minimal or headless install may need them added explicitly.

The list is wider than the binary needs: the binary bundles FreeType, and libfontconfig1 is linked on arm64 only.

The Vulkan loader and driver are dlopen'd at startup, so ldd does not list them. The app still needs them to render.

📜 License

Dual-licensed under MIT or Apache 2.0. The native runtime contains libraries under other licenses, listed in NOTICE.

About

The ultra-minimalist desktop runtime: Direct GPU rendering meets QuickJS. No Chromium, no overhead, pure performance.

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages