PHPackages                             erick-arch-bit/kineto-runtime - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. erick-arch-bit/kineto-runtime

ActiveLibrary[Framework](/categories/framework)

erick-arch-bit/kineto-runtime
=============================

Un microframework asíncrono con Hot Reload

2.0.3(3mo ago)03MITPHPPHP ^8.2

Since Jan 6Pushed 3mo agoCompare

[ Source](https://github.com/Erick-arch-bit/-Kineto-Runtime)[ Packagist](https://packagist.org/packages/erick-arch-bit/kineto-runtime)[ RSS](/packages/erick-arch-bit-kineto-runtime/feed)WikiDiscussions dev Synced 1mo ago

READMEChangelogDependencies (5)Versions (7)Used By (0)

⚡ Kineto Runtime
================

[](#-kineto-runtime)

**Kineto** es un motor de ejecución (**runtime**) asíncrono para PHP, diseñado para ofrecer una **Developer Experience (DX) moderna e instantánea**, similar a **Vite** o **Next.js**, pero aplicada al backend.

Olvídate de detener y reiniciar el servidor manualmente o de configuraciones complejas con Docker.
**Kineto detecta tus cambios y recarga tu aplicación en milisegundos sin cerrar el puerto TCP.**

---

🚀 Características Principales
-----------------------------

[](#-características-principales)

- ⚡ **Hot Reload Inteligente**
    Detecta cambios en tus archivos y reinicia el *worker* instantáneamente sin tumbar el servidor principal.
- 🔌 **Zero Downtime Reload**
    Mantiene el socket TCP abierto en el proceso padre, evitando errores de
    `Address already in use`.
- 💻 **Windows &amp; Linux Native**
    Arquitectura híbrida basada en `proc_open`, compatible con Windows, Linux y macOS
    sin WSL ni Docker obligatorios.
- 🎨 **Consola estilo Vite**
    Feedback visual limpio, con colores, tiempos de carga y estado del servidor.
- 🪶 **Ligero y Potente**
    Construido sobre **ReactPHP**, capaz de manejar miles de conexiones concurrentes con un consumo de memoria mínimo.
- 🧩 **Framework Agnostic**
    Diseñado como librería. Úsalo para tu propio microframework, API o servicio.

---

📦 Instalación
-------------

[](#-instalación)

Instala Kineto como dependencia de tu proyecto:

```
composer require Erick-arch-bit/kineto-runtime
```

---

---

✨ Novedades (v2.0)
------------------

[](#-novedades-v20)

Kineto evoluciona de ser un simple *runner* a un entorno de desarrollo completo. Estas son las nuevas capacidades integradas:

---

### ♻️ Live Browser Reload

[](#️-live-browser-reload)

**Experiencia "Zero-Click".** Kineto inyecta automáticamente un script ligero en tus respuestas HTML.

- Al guardar un archivo en tu editor, el servidor se reinicia en el backend.
- El navegador detecta el evento, se reconecta y **refresca la página automáticamente**.

### 🚨 Rescue Mode

[](#-rescue-mode)

Si tu código falla (Error de sintaxis o Excepción), el servidor **no se detiene**.

- Kineto intercepta el error y renderiza una **pantalla interactiva** en el navegador.
- Visualiza el *stack trace*, el mensaje de error y **resalta la línea exacta de código** donde ocurrió el fallo.

### 🗄️ Database Connection Pool

[](#️-database-connection-pool)

Gestor de base de datos de alto rendimiento incluido.

- Mantiene un pool de conexiones `PDO` vivas en memoria.
- **Elimina la latencia de conexión** (Handshake) en cada petición.
- Recicla las conexiones automáticamente, evitando fugas de memoria.

### 📂 Static File Server

[](#-static-file-server)

Servidor de archivos estáticos (`.css`, `.js`, imágenes) seguro y no bloqueante.

- Utiliza **Streams asíncronos** para servir archivos grandes sin consumir RAM excesiva.
- Protegido contra ataques de *Path Traversal*.

---

🛠️ Guía de Uso: Base de Datos
-----------------------------

[](#️-guía-de-uso-base-de-datos)

Kineto incluye un Facade `DB` para interactuar con el Pool de conexiones de forma segura y rápida. Ya no necesitas instanciar `new PDO()`.
------------------------------------------------------------------------------------------------------------------------------------------

[](#kineto-incluye-un-facade-db-para-interactuar-con-el-pool-de-conexiones-de-forma-segura-y-rápida-ya-no-necesitas-instanciar-new-pdo)

```
use Kineto\Runtime\Database\DB;

// 1. SELECT (Retorna array asociativo)
$users = DB::query("SELECT * FROM users WHERE active = 1");

// 2. INSERT / UPDATE
// Usa '?' para prevenir Inyección SQL automáticamente.
DB::query("INSERT INTO logs (message, level) VALUES (?, ?)", ["Error crítico", 1]);

// 3. Obtener una sola fila (Helper)
$user = DB::first("SELECT * FROM users WHERE id = ?", [42]);
```

---

⚙️ Configuración del Kernel (app.php)
-------------------------------------

[](#️-configuración-del-kernel-appphp)

```
use Kineto\Runtime\Database\DatabasePool;
use Kineto\Runtime\Support\StaticFileHandler;
use Dotenv\Dotenv;

// 1. Cargar Variables de Entorno
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->safeLoad();

// 2. Inicializar Pool de BD (Solo se ejecuta una vez al arranque)
DatabasePool::init([
    'host'     => $_ENV['DB_HOST'] ?? '127.0.0.1',
    'database' => $_ENV['DB_DATABASE'] ?? 'test',
    'username' => $_ENV['DB_USERNAME'] ?? 'root',
    'password' => $_ENV['DB_PASSWORD'] ?? '',
]);

return new class implements \Kineto\Runtime\Contracts\KernelInterface {
    private $staticHandler;

    public function __construct() {
        // Define tu carpeta pública para assets
        $this->staticHandler = new StaticFileHandler(__DIR__ . '/public');
    }

    public function handle($request) {
        // A. Intentar servir archivo estático primero
        $static = $this->staticHandler->serve($request->getUri()->getPath());
        if ($static) return $static;

        // B. Tu lógica del Framework / Router
        // ...
    }
};
```

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance78

Regular maintenance activity

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

6

Last Release

118d ago

Major Versions

1.0.1 → 2.0.02026-01-09

### Community

Maintainers

![](https://www.gravatar.com/avatar/71e0f38c933da1e70161365d74eeb922e1db66eb0a882f6d7c042066aa30c712?d=identicon)[Erick-arch-bit](/maintainers/Erick-arch-bit)

---

Top Contributors

[![Erick-arch-bit](https://avatars.githubusercontent.com/u/178329238?v=4)](https://github.com/Erick-arch-bit "Erick-arch-bit (16 commits)")

### Embed Badge

![Health badge](/badges/erick-arch-bit-kineto-runtime/health.svg)

```
[![Health](https://phpackages.com/badges/erick-arch-bit-kineto-runtime/health.svg)](https://phpackages.com/packages/erick-arch-bit-kineto-runtime)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.6k509.9M17.0k](/packages/laravel-framework)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M255](/packages/laravel-dusk)[laravel/reverb

Laravel Reverb provides a real-time WebSocket communication backend for Laravel applications.

1.5k9.4M48](/packages/laravel-reverb)[laravel/vapor-cli

The Laravel Vapor CLI

31310.7M8](/packages/laravel-vapor-cli)[laravel-zero/framework

The Laravel Zero Framework.

3371.4M368](/packages/laravel-zero-framework)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
