Skip to main content

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 con App, Request, Response, HTTPServer, WebSocket y 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.cache y wsbuilder.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 por TaskManager.
  • wsbuilder.dns: servidor DNS UDP local.
  • wsbuilder.db_replicas: lectura optimizada y pool de replicas SQLite.
  • wsbuilder.cookies y wsbuilder.headers: utilidades HTTP de bajo nivel.
  • wsbuilder.predicts: utilidad matematica Predictor.

Casos de uso

  1. APIs REST pequenas con respuestas JSON y HTML.
  2. Chat, notificaciones y telemetria sobre WebSocket.
  3. Persistencia local con SQLite y modelo declarativo.
  4. Cache de rutas o contenido calculado.
  5. Control de acceso, bloqueo temporal y observabilidad interna.
  6. Procesos de background y lectura optimizada sobre SQLite.

Documentacion

Contribucion y soporte

  • Crea ramas desde main usando feat/<nombre> o fix/<nombre>.
  • Mantiene los cambios enfocados en un solo tema por PR.
  • Abre el pull request hacia main con 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wsbuilder-0.15.0.tar.gz (82.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wsbuilder-0.15.0-py3-none-any.whl (77.5 kB view details)

Uploaded Python 3

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

Hashes for wsbuilder-0.15.0.tar.gz
Algorithm Hash digest
SHA256 4e9bbbe0d746aa3dd81937a1f32b4469d5819c10289be22f175c4752134d0d45
MD5 c9325490ab8564def29595ad3b8ce6c1
BLAKE2b-256 ebe52b7a319bf1391f94f8a78594b640a6d0ce55811a23b7d8b4877d9dbaff53

See more details on using hashes here.

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

Hashes for wsbuilder-0.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 96de3475f5fbc3316ff78affb8b5e54a6497ef648fe3602a8b4f5851ffcb1c9d
MD5 7674daece928cec2b47f9ca18968026f
BLAKE2b-256 c9143400add796e1fa90898da0cedfd0807e79b76ad0c4d8e397013aa776d829

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page