Introduction

From FullJS
Revision as of 15:03, 30 August 2025 by Guttmann (talk | contribs)
Jump to navigation Jump to search

FullJS is a comprehensive ecosystem for developing and running applications using JavaScript. It integrates an embedded V8 runtime, a robust server-side backend with Linux and systemd support, a KDE Plasma-inspired frontend GUI library, a collection of built-in libraries for common development tasks, and a web-based IDE with drag-and-drop GUI design.

JavaScript Runtime

FullJS provides a multi-threaded, event-driven JavaScript runtime built on the V8 JavaScript engine. The backend is designed to run exclusively on Linux for optimal performance. Supported architectures include:

  • amd64
  • arm
  • arm64
  • riscv64

Backend

The FullJS backend offers a modular, secure, and scalable foundation for running server-side services. It combines modern architectural principles with deep Linux integration.

Key features:

  • **Plugin-based architecture** – Extend backend functionality through a modular plugin system.
  • **Microservice-oriented design** – Isolated, loosely coupled services for scalability and maintainability.
  • **Advanced logging** – Structured logging with runtime-configurable log levels.
  • **JWT-based authentication** – Secure, standard-compliant authentication for microservices.
  • **Built-in user management** – Centralized authentication and user handling.
  • **ABAC (Attribute-Based Access Control)** – Fine-grained permission management based on attributes and policies.
  • **Full systemd integration** – Each microservice can be managed as a systemd service (start, stop, reload, status).
  • **Complete D-Bus integration** – Native inter-process communication support on Linux.

Frontend

The FullJS frontend is designed for **complex, information-driven web applications** rather than content-oriented websites.

Key features:

  • **KDE Plasma-inspired look & feel** – Modern, desktop-like experience within the browser, including light and dark color schemes.
  • **Plugin-based design** – Extend the frontend with additional components and modules.
  • **Core GUI controls** – Buttons, icons, dialogs, and essential widgets.
  • **Integrated third-party libraries** – Support for tools such as Chart.js for charts and Leaflet for maps.

Built-in Libraries

FullJS includes built-in JavaScript libraries to simplify development tasks. Examples:

  • **File system access (`fs`)** – Fully asynchronous I/O with Linux `io_uring`.
  • **Thread management (`Worker`)** – Efficient concurrent task handling.
  • **Networking (`Socket`, `http`)** – Server and client network capabilities.
  • **GUI elements for web apps** – Buttons, icons, dialogs, and other widgets.
  • **Charts and data visualization (`ChartJS`)** – Visualize data within applications.
  • **Logging utilities** – Structured logging with configurable levels.

Web IDE

FullJS provides a web-based Integrated Development Environment (IDE) for creating and managing applications. It supports development of both client-side and server-side code. While the backend requires Linux, client-side applications run in any modern browser.

See Also