PocketJS
[Website](https://pocketjs.dev) ·
[Playground](https://pocketjs.dev/playground/) ·
[Documentation](https://pocketjs.dev/docs/overview/) ·
[Blog](https://pocketjs.dev/blog/) ·
[Changelog](https://pocketjs.dev/changelog/)
PocketJS is a portable application runtime that turns modern component code into
native pixels across radically different hardware. Solid, Vue Vapor and Octane
components compile to one native tree, and a QuickJS guest drives a Rust core
that performs flexbox layout and draws every pixel **in one thread inside one
process**. There is **no DOM, no CSS engine and no WebView**.
## Contents
- [Programming model](#programming-model)
- [Rendering and execution](#rendering-and-execution)
- [Performance](#performance)
- [Native modules](#native-modules)
- [Hardware support](#hardware-support)
- [Applications](#applications)
- [Getting started](#getting-started)
- [Ahead-of-time compilation](#ahead-of-time-compilation)
- [Repository layout](#repository-layout)
- [Building and testing](#building-and-testing)
- [Documentation](#documentation)
## Programming model
### Frameworks
Three frameworks compile to the same native tree and run on the same QuickJS
guest. The choice changes application code and nothing below it.
| Framework | State and lifecycle | Source forms |
| --- | --- | --- |
| **Solid** | `solid-js` | JSX |
| **Vue Vapor** | `vue` | JSX and `