Framework ligero HTTP + WebSocket.
Project description
wsbuilder
wsbuilder es una libreria Python para construir servidores HTTP, WebSocket y utilidades de infraestructura en un unico paquete.
Se apoya en la biblioteca estandar y expone bloques pequenos y composables para:
- routing HTTP y respuestas tipadas.
- WebSocket de bajo nivel con control de frames.
- ORM ligero para SQLite.
- cache, seguridad, metricas y tareas en background.
- DNS local y replicas SQLite optimizadas.
Mapa rapido
flowchart TD
Cliente --> HTTPServer
HTTPServer --> App
App --> Router
App --> Security
App --> Cache
App --> Metrics
App --> Tasks
Router --> HTTP[HTTP / HTML / JSON]
Router --> WS[WebSocket]
HTTP --> ORM
HTTP --> Utilities[Cookies / Headers]
ORM --> SQLite[(SQLite)]
Cache --> SQLite
Por que destaca
- Menos superficie de dependencia en runtime.
- Flujo explicito: request, dispatch, respuesta y cierre.
- Modulos separados que puedes activar solo cuando los necesitas.
- API publica uniforme:
App,Response,Database,TaskManager,LocalDNSServer. - Adecuado para servicios pequenos, medianos y capas de borde en Microservicios.
Instalacion
python -m pip install -e .
Inicio rapido
from wsbuilder import App, Response
app = App(cors_allow_origin="*")
app.enable_metrics()
@app.view("/")
def home(_request):
return Response.html("<h1>wsbuilder</h1>")
@app.api("/api/health")
def health(_request):
return {"ok": True}
app.run("0.0.0.0", 8765)
Mapa de la libreria
flowchart LR
AppFacade[framework / App] --> HTTP[http]
AppFacade --> WS[ws]
AppFacade --> ORM[orm]
AppFacade --> Cache[cache / caches]
AppFacade --> Security[security]
AppFacade --> Metrics[metrics]
AppFacade --> Tasks[tasks]
AppFacade --> DNS[dns]
AppFacade --> Replicas[db_replicas]
AppFacade --> Utils[cookies / headers]
AppFacade --> Predictor[predicts]
wsbuilder.framework: fachada publica conApp,Request,Response,HTTPServer,WebSockety helpers.wsbuilder.http: parseo HTTP, request/response y streaming.wsbuilder.ws: handshake, frames y errores WebSocket.wsbuilder.orm: modelos SQLite,QuerySet, transacciones y helpers SQL.wsbuilder.cacheywsbuilder.caches: cache en memoria y cache declarativa de respuestas.wsbuilder.security: ACL, rate limiting y decision engine.wsbuilder.metrics: snapshot y stream de observabilidad.wsbuilder.tasks: trabajo asincrono controlado porTaskManager.wsbuilder.dns: servidor DNS UDP local.wsbuilder.db_replicas: lectura optimizada y pool de replicas SQLite.wsbuilder.cookiesywsbuilder.headers: utilidades HTTP de bajo nivel.wsbuilder.predicts: utilidad matematicaPredictor.
Casos de uso
- APIs REST pequenas con respuestas JSON y HTML.
- Chat, notificaciones y telemetria sobre WebSocket.
- Persistencia local con SQLite y modelo declarativo.
- Cache de rutas o contenido calculado.
- Control de acceso, bloqueo temporal y observabilidad interna.
- Procesos de background y lectura optimizada sobre SQLite.
Documentacion
Contribucion y soporte
- Crea ramas desde
mainusandofeat/<nombre>ofix/<nombre>. - Mantiene los cambios enfocados en un solo tema por PR.
- Abre el pull request hacia
maincon una descripcion corta y notas de riesgo. - Si encuentras un problema de seguridad, reportalo de forma privada.
Soporte opcional
Si wsbuilder te resulta util y quieres apoyar el mantenimiento del proyecto, puedes donar en BTC:
bc1q3lhxpr9yantvefmvhpd2h4lu0ykf3t45zvuve2
Red: BTC mainnet (Native SegWit).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wsbuilder-0.15.0.tar.gz.
File metadata
- Download URL: wsbuilder-0.15.0.tar.gz
- Upload date:
- Size: 82.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e9bbbe0d746aa3dd81937a1f32b4469d5819c10289be22f175c4752134d0d45
|
|
| MD5 |
c9325490ab8564def29595ad3b8ce6c1
|
|
| BLAKE2b-256 |
ebe52b7a319bf1391f94f8a78594b640a6d0ce55811a23b7d8b4877d9dbaff53
|
File details
Details for the file wsbuilder-0.15.0-py3-none-any.whl.
File metadata
- Download URL: wsbuilder-0.15.0-py3-none-any.whl
- Upload date:
- Size: 77.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96de3475f5fbc3316ff78affb8b5e54a6497ef648fe3602a8b4f5851ffcb1c9d
|
|
| MD5 |
7674daece928cec2b47f9ca18968026f
|
|
| BLAKE2b-256 |
c9143400add796e1fa90898da0cedfd0807e79b76ad0c4d8e397013aa776d829
|