Skip to content

Latest commit

 

History

203 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Incarnative.js

npm version license CI

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 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/runtime-core";

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

<template>
  <div :style="{ text_color: 0xffffff }" @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 Not planned
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.

Some of these are already unnecessary. The binary bundles FreeType, and libfontconfig1 is linked on arm64 only. The list will be narrowed once it is measured on a minimal install.

The Vulkan loader and driver are dlopen'd at startup rather than linked, so ldd won't show them. Rendering can't start without them.

📜 License

Dual-licensed under MIT or Apache 2.0.

About

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

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages