insitu-js 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,7 +7,7 @@ El versionado sigue SemVer (MAJOR.MINOR.PATCH).
7
7
 
8
8
  ## [1.0.2] - 2026-02-16
9
9
 
10
- ### Mejoras en Presentación Visual y Corrección de Dependencias Circulares - Insitu Framework
10
+ ### Mejoras en Presentación Visual, Corrección de Dependencias Circulares y Hooks de Seguimiento - Insitu Framework
11
11
 
12
12
  #### Archivo Nuevo: `lib/utils/colorHelper.js`
13
13
  - Creación del módulo `ColorHelper` con códigos ANSI para diferentes colores
@@ -25,11 +25,38 @@ El versionado sigue SemVer (MAJOR.MINOR.PATCH).
25
25
  - Creación de una instancia local de `HookSystem` para resolver el problema
26
26
  - Solución del warning "Accessing non-existent property 'hooks' of module exports inside circular dependency"
27
27
 
28
+ #### Nueva Funcionalidad: Hooks de Seguimiento de Solicitudes
29
+ - Implementación de mensaje en color cyan cuando se dispara el hook `request_received`
30
+ - Adición de mensaje en color magenta cuando se dispara el hook `route_not_found` (equivalente a error 404)
31
+ - Manejo seguro de casos donde el objeto `req` podría ser indefinido en el hook `route_not_found`
32
+
33
+ #### Nueva Funcionalidad: Hooks before_route_handler y after_route_handler
34
+ - Implementación de los hooks `before_route_handler` y `after_route_handler` para solicitudes que no sean OPTIONS
35
+ - Soporte para filtros y acciones en ambos hooks
36
+ - Posibilidad de modificar objetos `req` y `res` durante la ejecución de los filtros
37
+ - Aplicación exclusiva a solicitudes que no sean del tipo OPTIONS
38
+
39
+ #### Nueva Funcionalidad: Hooks before_static_file_load y after_static_file_load
40
+ - Implementación de los hooks `before_static_file_load` y `after_static_file_load` para manipulación de archivos estáticos
41
+ - Soporte para filtros y acciones en ambos hooks
42
+ - Posibilidad de modificar objetos `req`, `res`, `filePath` y `staticConfig` durante la ejecución de los filtros
43
+ - Capacidad de modificar el contenido de archivos estáticos a través del parámetro `fileContent` en el hook `after_static_file_load`
44
+ - Aplicación a ambos tipos de carga de archivos estáticos (archivos normales e índices)
45
+
46
+ #### Nueva Funcionalidad: Hooks before_controller_load y after_controller_load
47
+ - Implementación de los hooks `before_controller_load` y `after_controller_load` para manipulación de carga de controladores
48
+ - Soporte para filtros y acciones en ambos hooks
49
+ - Posibilidad de modificar la ruta del controlador en `before_controller_load`
50
+ - Posibilidad de modificar el módulo del controlador en `after_controller_load`
51
+ - Aplicación tanto en el cargador de controladores como en el sistema de rutas
52
+ - Mantenimiento de compatibilidad con los hooks antiguos `pre_controller_load` y `post_controller_load` con notificación de deprecación
53
+
28
54
  #### Beneficios Obtenidos
29
55
  - Mejora en la presentación visual de la aplicación con colores
30
56
  - Eliminación de advertencias técnicas que afectaban la experiencia del usuario
31
57
  - Mayor claridad visual en la salida de la consola
32
58
  - Resolución de problemas técnicos de arquitectura de módulos
59
+ - Mejor seguimiento y monitoreo de solicitudes entrantes y errores 404
33
60
 
34
61
  ---
35
62
 
@@ -0,0 +1,198 @@
1
+ # Changelog
2
+
3
+ Todos los cambios relevantes de este framework se documentan en este archivo.
4
+ El versionado sigue SemVer (MAJOR.MINOR.PATCH).
5
+
6
+ ---
7
+
8
+ ## [1.1.0] - 2026-02-16
9
+
10
+ ### Nueva Funcionalidad Principal: Sistema Avanzado de Hooks y Filtros - Insitu Framework
11
+
12
+ #### Hooks y Filtros para Manipulación de Rutas
13
+ - Implementación de los hooks `before_route_handler` y `after_route_handler` para manipulación de solicitudes
14
+ - Soporte para filtros y acciones en ambos hooks
15
+ - Posibilidad de modificar objetos `req` y `res` durante la ejecución de los filtros
16
+ - Aplicación exclusiva a solicitudes que no sean del tipo OPTIONS
17
+
18
+ #### Hooks y Filtros para Manipulación de Archivos Estáticos
19
+ - Implementación de los hooks `before_static_file_load` y `after_static_file_load` para manipulación de archivos estáticos
20
+ - Soporte para filtros y acciones en ambos hooks
21
+ - Posibilidad de modificar objetos `req`, `res`, `filePath` y `staticConfig` durante la ejecución de los filtros
22
+ - Capacidad de modificar el contenido de archivos estáticos a través del parámetro `fileContent` en el hook `after_static_file_load`
23
+ - Aplicación a ambos tipos de carga de archivos estáticos (archivos normales e índices)
24
+
25
+ #### Hooks y Filtros para Manipulación de Controladores
26
+ - Implementación de los hooks `before_controller_load` y `after_controller_load` para manipulación de carga de controladores
27
+ - Soporte para filtros y acciones en ambos hooks
28
+ - Posibilidad de modificar la ruta del controlador en `before_controller_load`
29
+ - Posibilidad de modificar el módulo del controlador en `after_controller_load`
30
+ - Aplicación tanto en el cargador de controladores como en el sistema de rutas
31
+ - Mantenimiento de compatibilidad con los hooks antiguos `pre_controller_load` y `post_controller_load` con notificación de deprecación
32
+
33
+ #### Sistema de Filtros Mejorado
34
+ - Soporte para filtros que permiten modificar parámetros en múltiples puntos del framework
35
+ - Sistema de prioridades configurable para el orden de ejecución
36
+ - Integración completa con el sistema de hooks existente
37
+ - Soporte para operaciones asíncronas en filtros
38
+
39
+ #### Mejoras en el Sistema de Hooks
40
+ - Soporte para operaciones asíncronas en hooks
41
+ - Resolución de promesas en la cadena de hooks y filtros
42
+ - Manejo adecuado de errores en operaciones asíncronas
43
+ - Mantenimiento del orden de ejecución incluso con operaciones asíncronas
44
+
45
+ #### Nueva Funcionalidad: Filtro para Personalización de Respuesta 404
46
+ - Implementación del filtro `customize_404_response` para personalizar la respuesta de error 404
47
+ - Soporte para modificar completamente la respuesta 404 o evitar la respuesta estándar
48
+ - Parámetros del filtro: `({ shouldSendDefaultResponse, pathname, req, res }, pathname, req, res)`
49
+ - Posibilidad de enviar respuestas personalizadas en lugar del mensaje estándar de 404
50
+
51
+ #### Beneficios Obtenidos
52
+ - Mayor flexibilidad para extender el comportamiento del framework
53
+ - Control preciso sobre el flujo de ejecución en múltiples puntos
54
+ - Soporte para operaciones asíncronas en hooks y filtros
55
+ - Compatibilidad hacia atrás con hooks existentes
56
+ - Documentación completa de todos los hooks y filtros disponibles
57
+ - Mayor capacidad de personalización sin modificar el núcleo del framework
58
+ - Posibilidad de personalizar completamente la experiencia de usuario ante errores 404
59
+
60
+ ---
61
+
62
+ ## [1.0.2] - 2026-02-16
63
+
64
+ ### Mejoras en Presentación Visual, Corrección de Dependencias Circulares y Hooks de Seguimiento - Insitu Framework
65
+
66
+ #### Archivo Nuevo: `lib/utils/colorHelper.js`
67
+ - Creación del módulo `ColorHelper` con códigos ANSI para diferentes colores
68
+ - Implementación de métodos para aplicar colores a texto en consola
69
+ - Adición de funciones para combinar múltiples colores en un solo texto
70
+
71
+ #### Archivo Modificado: `index.js`
72
+ - Integración del `ColorHelper` para colorear el logo ASCII art
73
+ - Aplicación de color amarillo al texto de la versión
74
+ - Mantenimiento del formato original del mensaje de bienvenida
75
+
76
+ #### Corrección de Advertencia de Dependencia Circular
77
+ - Modificación de `lib/queue/GlobalQueueStorage.js` para evitar dependencia circular
78
+ - Eliminación de la referencia directa a `framework.hooks` desde `index.js`
79
+ - Creación de una instancia local de `HookSystem` para resolver el problema
80
+ - Solución del warning "Accessing non-existent property 'hooks' of module exports inside circular dependency"
81
+
82
+ #### Nueva Funcionalidad: Hooks de Seguimiento de Solicitudes
83
+ - Implementación de mensaje en color cyan cuando se dispara el hook `request_received`
84
+ - Adición de mensaje en color magenta cuando se dispara el hook `route_not_found` (equivalente a error 404)
85
+ - Manejo seguro de casos donde el objeto `req` podría ser indefinido en el hook `route_not_found`
86
+
87
+ #### Beneficios Obtenidos
88
+ - Mejora en la presentación visual de la aplicación con colores
89
+ - Eliminación de advertencias técnicas que afectaban la experiencia del usuario
90
+ - Mayor claridad visual en la salida de la consola
91
+ - Resolución de problemas técnicos de arquitectura de módulos
92
+ - Mejor seguimiento y monitoreo de solicitudes entrantes y errores 404
93
+
94
+ ---
95
+
96
+ ## [1.0.1] - 2026-02-13
97
+
98
+ ### Refactorización DRY y Mejoras en el WAF - Insitu Framework
99
+
100
+ #### Archivo Nuevo: `lib/utils/executeMiddleware.js`
101
+ - Creación del módulo centralizado `executeMiddleware` para la ejecución de middlewares
102
+ - Implementación del método reutilizable `executeMiddleware(middleware, req, res, nextFn = null)` con manejo de promesas
103
+
104
+ #### Archivos Modificados:
105
+ - `lib/core/server.js`
106
+ - `lib/loader/routeLoader.js`
107
+ - `lib/core/router.js`
108
+ - `lib/security/globalWAFStats.js`
109
+ - `lib/security/firewall.js`
110
+ - `lib/admin/modules/WAFModule.js`
111
+
112
+ #### Implementación de Método Centralizado executeMiddleware
113
+ - Eliminación de múltiples instancias de código repetido para ejecución de middlewares
114
+ - Reemplazo de lógica local con importación y uso del módulo centralizado
115
+ - Actualización del método `use` en el router para usar el método centralizado
116
+ - Implementación de definición dinámica de métodos HTTP en el router
117
+
118
+ #### Implementación de Funcionalidades de Log y Monitor en el WAF
119
+ - Añadida propiedad `monitoredRequests` al objeto global de estadísticas del WAF
120
+ - Implementación completa de la acción "monitor" en el middleware de firewall
121
+ - Almacenamiento de solicitudes monitoreadas en el mapa global `monitoredRequests`
122
+ - Añadido comando `waf-monitored` al módulo de administración WAF
123
+ - Implementación del método `showMonitoredRequests()` para mostrar solicitudes monitoreadas
124
+ - Actualización del comando `waf-logs` para mostrar solicitudes registradas con acción "log"
125
+
126
+ #### Aplicación del Principio DRY (Don't Repeat Yourself)
127
+ - Creación del método `createAuthenticatedHandler()` para manejar lógica de autenticación
128
+ - Implementación de métodos para respuestas HTTP comunes (`sendJsonResponse()`, `sendForbiddenResponse()`, `sendNotFoundResponse()`, `sendRequestTooLargeResponse()`)
129
+ - Uso del método reutilizable `handleError()` en lugar de llamar directamente a ErrorHandler.handle()
130
+
131
+ #### Mejoras en el Manejo de Errores y Configuración
132
+ - Centralización del manejo de errores con el método `handleError()`
133
+ - Creación del método `isJsonRequest()` para verificar tipo de contenido
134
+ - Implementación del método `setStaticFileHeaders()` para configurar headers de archivos estáticos
135
+
136
+ #### Optimizaciones de Estadísticas y Hooks
137
+ - Método `setupResponseCapture()` para capturar datos de respuesta para estadísticas
138
+ - Método `updateRequestProcessingStats()` para actualizar estadísticas de procesamiento
139
+ - Método `registerRouteAndEndpointStats()` para registrar estadísticas de acceso
140
+ - Métodos para manejar eventos de hooks de solicitud (`handleRouteMatched()`, `handleMiddlewareResponseFinished()`)
141
+
142
+ #### Mejoras en Verificaciones y Validaciones
143
+ - Método `isMiddlewareFunction()` para verificar si un middleware es una función
144
+ - Método `isAsyncFunction()` para verificar si una función es asíncrona
145
+
146
+ #### Beneficios Obtenidos
147
+ - Eliminación significativa de código duplicado
148
+ - Mejor mantenibilidad: cambios en lógica común solo se realizan en un lugar
149
+ - Mayor consistencia en el manejo de operaciones repetitivas
150
+ - Funcionalidad completa de las acciones "log" y "monitor" en el WAF
151
+ - Almacenamiento eficiente de solicitudes registradas y monitoreadas
152
+ - Visibilidad mejorada a través de comandos específicos (`waf-logs`, `waf-monitored`)
153
+ - Reducción de posibles errores por inconsistencias
154
+ - Claridad mejorada del código
155
+
156
+ ---
157
+
158
+ ## [1.0.0] - 2026-02-12
159
+
160
+ ### Consolidated Release - Insitu Framework
161
+
162
+ #### Framework Renaming
163
+ - Cambio de nombre del framework de "JERK Framework" a "Insitu Framework"
164
+ - Actualización de todos los nombres de paquetes, referencias y documentación
165
+ - Renombrado de archivos y directorios relacionados con el antiguo nombre
166
+
167
+ #### Version Standardization
168
+ - Consolidación de todas las versiones anteriores a la versión única 1.0.0
169
+ - Actualización de todos los números de versión en comentarios, documentación y código
170
+ - Unificación de la numeración de versiones en todos los componentes
171
+
172
+ #### Architecture & Core Features
173
+ - Sistema de enrutamiento avanzado con soporte para rutas estáticas y parametrizadas
174
+ - Arquitectura modular con componentes desacoplados
175
+ - Sistema de hooks y filters para extensibilidad
176
+ - Motor de vistas con soporte para includes, variables y filtros
177
+ - Sistema de modelos con soporte para diferentes adaptadores (memoria, MariaDB, SQLite)
178
+
179
+ #### Security & Performance
180
+ - Firewall WAF integrado con reglas configurables
181
+ - Sistema de autenticación con múltiples estrategias (JWT, API Keys, Sesiones)
182
+ - Sistema de sesiones con cookies seguras
183
+ - Optimizaciones de rendimiento con índices y caché
184
+ - Protección contra ataques XSS y SQL Injection
185
+
186
+ #### Administration & Monitoring
187
+ - Extensión de administración con servidor TCP local
188
+ - Módulos de administración para gestión de rutas, vistas y estadísticas
189
+ - Sistema de colas con soporte para múltiples colas concurrentes
190
+ - Monitorización en tiempo real de métricas del servidor
191
+
192
+ #### Development Experience
193
+ - CLI de administración con autocompletado
194
+ - Generador interactivo de controladores
195
+ - Carga de rutas desde archivos JSON o programáticamente
196
+ - Documentación completa y ejemplos de uso
197
+
198
+ ---
package/README.md CHANGED
@@ -1,101 +1,108 @@
1
1
  # 🚀 INSITU - JS Framework
2
2
 
3
- Un framework backend **rápido, modular y extensible**, diseñado para construir APIs y servicios HTTP de alto rendimiento con enfoque en **rendimiento real, control total y cero dependencias innecesarias**.
3
+ A **fast, modular and extensible** backend framework designed to build high-performance HTTP APIs and services with focus on **real performance, full control and zero unnecessary dependencies**.
4
4
 
5
- Pensado para desarrolladores que prefieren **infraestructura directa, predecible y eficiente**, no capas de abstracción pesadas.
5
+ Built for developers who prefer **direct, predictable and efficient infrastructure**, not heavy abstraction layers.
6
6
 
7
7
  ---
8
8
 
9
- ## ⚡ Principios
9
+ ## ⚡ Principles
10
10
 
11
- - Performance first — rutas indexadas, cachés y estructuras O(1)
12
- - Arquitectura modular — hooks, filtros y módulos desacoplados
13
- - Observabilidad integradaadministración en tiempo real
14
- - Seguridad por defecto
15
- - Sin magia ocultacomportamiento explícito y depurable
11
+ - Performance first — indexed routes, caches and O(1) structures
12
+ - Modular architecture — hooks, filters and decoupled modules
13
+ - Built-in observabilityreal-time administration
14
+ - Security by default
15
+ - No hidden magicexplicit and debuggable behavior
16
16
 
17
17
  ---
18
18
 
19
- ## ✨ Características principales
20
-
21
- ### 🧭 Enrutamiento de alto rendimiento
22
- - Índices por segmentos y prefijos
23
- - Buckets por aridad
24
- - Rutas estáticas y dinámicas (regex)
25
- - Cache de rutas con estadísticas de hits/misses
26
-
27
- ### 🧩 Sistema modular
28
- - Hooks y filtros
29
- - Plugins externos sin modificar el core
30
- - Carga dinámica de módulos
31
-
32
- ### 🛠 Consola de administración integrada
33
- Servidor TCP local para inspección en tiempo real:
34
-
35
- - rutas activas
36
- - estadísticas del servidor
37
- - estado del sistema
38
- - colas
39
- - cachés
40
- - generación de controladores
41
-
42
- ### 📬 Sistema de colas
43
- - Múltiples colas concurrentes
44
- - Prioridades
45
- - Reintentos automáticos
19
+ ## ✨ Key Features
20
+
21
+ ### 🧭 High-performance Routing
22
+ - Segment and prefix indexing
23
+ - Arity buckets
24
+ - Static and dynamic routes (regex)
25
+ - Route caching with hit/miss statistics
26
+
27
+ ### 🧩 Modular System
28
+ - Hooks and filters
29
+ - Hook system with support for actions and filters
30
+ - Filters that allow modifying `req`, `res`, routes and file content
31
+ - Configurable priorities for execution order
32
+ - External plugins without modifying the core
33
+ - Dynamic module loading
34
+ - Advanced hooks for route and static file handling
35
+ - `before_route_handler` and `after_route_handler` for request manipulation
36
+ - `before_static_file_load` and `after_static_file_load` for static file manipulation
37
+ - Support for filters that allow modifying `req`, `res` and file content
38
+
39
+ ### 🛠 Built-in Administration Console
40
+ Local TCP server for real-time inspection:
41
+
42
+ - active routes
43
+ - server statistics
44
+ - system status
45
+ - queues
46
+ - caches
47
+ - controller generation
48
+
49
+ ### 📬 Queue System
50
+ - Multiple concurrent queues
51
+ - Priorities
52
+ - Automatic retries
46
53
  - Fallbacks
47
- - Pausa / reanudación
48
- - Limpieza y reintentos manuales
49
-
50
- ### 📊 Observabilidad
51
- - Métricas de requests/responses
52
- - Endpoints más utilizados
53
- - Estadísticas de caché de vistas
54
- - Estado de recursos del sistema
55
- - Monitorización en tiempo real
56
-
57
- ### 🔐 Seguridad
58
- - Autenticación JWT
59
- - Roles y capacidades
60
- - Middleware de seguridad
61
- - WAF básico
62
- - Cookies con flags configurables (`Secure`, `SameSite`, etc.)
63
- - Protección XSS / SQL Injection
64
-
65
- ### 🗄 Base de datos
66
- - Sistema de modelos
67
- - QueryBuilder integrado
68
- - Soporte MariaDB y SQLite
69
- - Migraciones
54
+ - Pause / resume
55
+ - Manual cleanup and retries
56
+
57
+ ### 📊 Observability
58
+ - Request/response metrics
59
+ - Most used endpoints
60
+ - View cache statistics
61
+ - System resource status
62
+ - Real-time monitoring
63
+
64
+ ### 🔐 Security
65
+ - JWT authentication
66
+ - Roles and capabilities
67
+ - Security middleware
68
+ - Basic WAF
69
+ - Configurable cookie flags (`Secure`, `SameSite`, etc.)
70
+ - XSS / SQL Injection protection
71
+
72
+ ### 🗄 Database
73
+ - Model system
74
+ - Integrated QueryBuilder
75
+ - MariaDB and SQLite support
76
+ - Migrations
70
77
 
71
78
  ### 🎨 Developer Experience
72
- - Generador interactivo de controladores
73
- - Gestor de rutas
74
- - CLI coloreada
75
- - Configuración mínima
79
+ - Interactive controller generator
80
+ - Route manager
81
+ - Colored CLI
82
+ - Minimal configuration
76
83
 
77
84
  ---
78
85
 
79
- ## 🧠 Uso
86
+ ## 🧠 Usage
80
87
 
81
- El framework **no impone comandos mágicos ni wrappers propietarios**.
88
+ The framework **does not impose magic commands or proprietary wrappers**.
82
89
 
83
- Se integra directamente en tu binario/servidor, y la administración se realiza a través de:
90
+ It integrates directly into your binary/server, and administration is performed through:
84
91
 
85
- - consola TCP local de administración
86
- - módulos CLI
87
- - hooks y extensiones
92
+ - local TCP administration console
93
+ - CLI modules
94
+ - hooks and extensions
88
95
 
89
- Consulta la documentación del proyecto para ejemplos específicos de inicialización según tu aplicación.
96
+ Check the project documentation for specific initialization examples based on your application.
90
97
 
91
98
  ---
92
99
 
93
- ## 🧱 Arquitectura
100
+ ## 🧱 Architecture
94
101
 
95
102
  ```
96
103
  Request
97
104
 
98
- Router (indexado)
105
+ Router (indexed)
99
106
 
100
107
  Middleware / Hooks
101
108
 
@@ -104,52 +111,52 @@ Controller
104
111
  View / JSON / Stream
105
112
  ```
106
113
 
107
- Componentes desacopladosextensiblesreemplazables.
114
+ Decoupled componentsextensiblereplaceable.
108
115
 
109
116
  ---
110
117
 
111
- ## 🔌 Extensibilidad
118
+ ## 🔌 Extensibility
112
119
 
113
- Puedes extender sin modificar el core:
120
+ You can extend without modifying the core:
114
121
 
115
- - módulos de administración
116
- - hooks personalizados
117
- - filtros de seguridad
122
+ - administration modules
123
+ - custom hooks
124
+ - security filters
118
125
  - middlewares
119
- - plugins externos
126
+ - external plugins
120
127
 
121
128
  ---
122
129
 
123
- ## 📈 Rendimiento
130
+ ## 📈 Performance
124
131
 
125
- Optimizado para:
132
+ Optimized for:
126
133
 
127
- - menos asignaciones
128
- - menos normalización de rutas
129
- - menos búsquedas lineales
130
- - más indexación y caché
134
+ - fewer allocations
135
+ - less route normalization
136
+ - fewer linear searches
137
+ - more indexing and caching
131
138
 
132
- Resultado: **menor CPU, menor latencia y mayor throughput**.
139
+ Result: **lower CPU, lower latency and higher throughput**.
133
140
 
134
141
  ---
135
142
 
136
- ## 🗂 Versionado
143
+ ## 🗂 Versioning
137
144
 
138
- Seguimos **Semantic Versioning (SemVer)**.
145
+ We follow **Semantic Versioning (SemVer)**.
139
146
 
140
- Consulta cambios detallados en:
147
+ Check detailed changes at:
141
148
  👉 `CHANGELOG.md`
142
149
 
143
150
  ---
144
151
 
145
- ## 🤝 Filosofía
152
+ ## 🤝 Philosophy
146
153
 
147
- > Menos framework. Más control. Más rendimiento.
154
+ > Less framework. More control. More performance.
148
155
 
149
- Diseñado para equipos que prefieren entender el sistema completo en lugar de depender de abstracciones innecesarias.
156
+ Designed for teams that prefer to understand the complete system rather than depend on unnecessary abstractions.
150
157
 
151
158
  ---
152
159
 
153
- ## 📄 Licencia
160
+ ## 📄 License
154
161
 
155
- APACHE 2.0
162
+ APACHE 2.0
package/README_es.md ADDED
@@ -0,0 +1,162 @@
1
+ # 🚀 INSITU - JS Framework
2
+
3
+ Un framework backend **rápido, modular y extensible**, diseñado para construir APIs y servicios HTTP de alto rendimiento con enfoque en **rendimiento real, control total y cero dependencias innecesarias**.
4
+
5
+ Pensado para desarrolladores que prefieren **infraestructura directa, predecible y eficiente**, no capas de abstracción pesadas.
6
+
7
+ ---
8
+
9
+ ## ⚡ Principios
10
+
11
+ - Performance first — rutas indexadas, cachés y estructuras O(1)
12
+ - Arquitectura modular — hooks, filtros y módulos desacoplados
13
+ - Observabilidad integrada — administración en tiempo real
14
+ - Seguridad por defecto
15
+ - Sin magia oculta — comportamiento explícito y depurable
16
+
17
+ ---
18
+
19
+ ## ✨ Características principales
20
+
21
+ ### 🧭 Enrutamiento de alto rendimiento
22
+ - Índices por segmentos y prefijos
23
+ - Buckets por aridad
24
+ - Rutas estáticas y dinámicas (regex)
25
+ - Cache de rutas con estadísticas de hits/misses
26
+
27
+ ### 🧩 Sistema modular
28
+ - Hooks y filtros
29
+ - Sistema de hooks con soporte para acciones y filtros
30
+ - Filtros que permiten modificar objetos `req`, `res`, rutas y contenido de archivos
31
+ - Prioridades configurables para el orden de ejecución
32
+ - Plugins externos sin modificar el core
33
+ - Carga dinámica de módulos
34
+ - Hooks avanzados para manejo de rutas y archivos estáticos
35
+ - `before_route_handler` y `after_route_handler` para manipulación de solicitudes
36
+ - `before_static_file_load` y `after_static_file_load` para manipulación de archivos estáticos
37
+ - Soporte para filtros que permiten modificar objetos `req`, `res` y contenido de archivos
38
+
39
+ ### 🛠 Consola de administración integrada
40
+ Servidor TCP local para inspección en tiempo real:
41
+
42
+ - rutas activas
43
+ - estadísticas del servidor
44
+ - estado del sistema
45
+ - colas
46
+ - cachés
47
+ - generación de controladores
48
+
49
+ ### 📬 Sistema de colas
50
+ - Múltiples colas concurrentes
51
+ - Prioridades
52
+ - Reintentos automáticos
53
+ - Fallbacks
54
+ - Pausa / reanudación
55
+ - Limpieza y reintentos manuales
56
+
57
+ ### 📊 Observabilidad
58
+ - Métricas de requests/responses
59
+ - Endpoints más utilizados
60
+ - Estadísticas de caché de vistas
61
+ - Estado de recursos del sistema
62
+ - Monitorización en tiempo real
63
+
64
+ ### 🔐 Seguridad
65
+ - Autenticación JWT
66
+ - Roles y capacidades
67
+ - Middleware de seguridad
68
+ - WAF básico
69
+ - Cookies con flags configurables (`Secure`, `SameSite`, etc.)
70
+ - Protección XSS / SQL Injection
71
+
72
+ ### 🗄 Base de datos
73
+ - Sistema de modelos
74
+ - QueryBuilder integrado
75
+ - Soporte MariaDB y SQLite
76
+ - Migraciones
77
+
78
+ ### 🎨 Developer Experience
79
+ - Generador interactivo de controladores
80
+ - Gestor de rutas
81
+ - CLI coloreada
82
+ - Configuración mínima
83
+
84
+ ---
85
+
86
+ ## 🧠 Uso
87
+
88
+ El framework **no impone comandos mágicos ni wrappers propietarios**.
89
+
90
+ Se integra directamente en tu binario/servidor, y la administración se realiza a través de:
91
+
92
+ - consola TCP local de administración
93
+ - módulos CLI
94
+ - hooks y extensiones
95
+
96
+ Consulta la documentación del proyecto para ejemplos específicos de inicialización según tu aplicación.
97
+
98
+ ---
99
+
100
+ ## 🧱 Arquitectura
101
+
102
+ ```
103
+ Request
104
+
105
+ Router (indexado)
106
+
107
+ Middleware / Hooks
108
+
109
+ Controller
110
+
111
+ View / JSON / Stream
112
+ ```
113
+
114
+ Componentes desacoplados → extensibles → reemplazables.
115
+
116
+ ---
117
+
118
+ ## 🔌 Extensibilidad
119
+
120
+ Puedes extender sin modificar el core:
121
+
122
+ - módulos de administración
123
+ - hooks personalizados
124
+ - filtros de seguridad
125
+ - middlewares
126
+ - plugins externos
127
+
128
+ ---
129
+
130
+ ## 📈 Rendimiento
131
+
132
+ Optimizado para:
133
+
134
+ - menos asignaciones
135
+ - menos normalización de rutas
136
+ - menos búsquedas lineales
137
+ - más indexación y caché
138
+
139
+ Resultado: **menor CPU, menor latencia y mayor throughput**.
140
+
141
+ ---
142
+
143
+ ## 🗂 Versionado
144
+
145
+ Seguimos **Semantic Versioning (SemVer)**.
146
+
147
+ Consulta cambios detallados en:
148
+ 👉 `CHANGELOG.md`
149
+
150
+ ---
151
+
152
+ ## 🤝 Filosofía
153
+
154
+ > Menos framework. Más control. Más rendimiento.
155
+
156
+ Diseñado para equipos que prefieren entender el sistema completo en lugar de depender de abstracciones innecesarias.
157
+
158
+ ---
159
+
160
+ ## 📄 Licencia
161
+
162
+ APACHE 2.0