Skip to main content

Holonet Muónica

Proyecto experimental basado en la hoja de ruta muónica. Este repositorio implementa la infraestructura necesaria para simular la red holográfica y preparar integraciones posteriores con hardware y servicios externos. La versión 1.0.0 marca el primer hito público disponible tanto en GitHub como en PyPI.

Instalación desde PyPI

pip install holonet-py

La distribución publica el paquete holonet y expone todas las abstracciones descritas en la documentación. Para verificar la versión instalada se puede ejecutar:

import holonet

print(holonet.__version__)

Si el comando imprime 1.0.0, la instalación coincide con la versión liberada.

Estructura inicial

src/holonet/
├── core/
├── modulation/
├── transmission/
├── decoding/
├── network/
├── interface/
├── simulation/
├── hardware/
└── security/

Plan de tareas

El desarrollo se organiza según las fases propuestas:

  1. Inicialización: configuración de empaquetado, documentación y estructura base.
  2. Abstracciones núcleo: definición de paquetes, señales y nodos.
  3. Simulación: motor muónico inicial, transporte y decodificación.
  4. Modulación: patrones leptónicos reutilizables.
  5. Red: topologías y coordinación de nodos.
  6. Interfaces: API web y puente WebSocket.
  7. Hardware simulado: drivers mock y seguridad básica.
  8. Inteligencia adaptativa: algoritmos de optimización y topología dinámica.
  9. Empaquetado y CI/CD: documentación extendida y flujos de despliegue.

Cada tarea se implementa con módulos y pruebas específicas para facilitar la colaboración futura.

Uso

  1. Instalar dependencias para desarrollo local (incluye pruebas y documentación):
    pip install -e .[tests,docs]
    

    Nota: el extra tests instala httpx, necesario para ejecutar las pruebas que dependen de fastapi.testclient.

  2. Ejecutar pruebas con cobertura:
    coverage run -m pytest
    
  3. Generar reportes de cobertura:
    coverage xml
    coverage report
    
    El archivo coverage.xml se puede abrir con herramientas compatibles (por ejemplo, VS Code o Codecov) y el comando coverage report mostrará un resumen en la terminal.
  4. Generar documentación:
    mkdocs serve
    
  5. Validar la documentación generada y los enlaces externos:
    mkdocs build --strict
    HTMLPROOFER_VALIDATE_RENDERED=true mkdocs build --strict
    
    El primer comando ejecuta una compilación estricta que activa el plugin mkdocs-htmlproofer-plugin sobre el contenido en Markdown. El segundo vuelve a ejecutar la verificación analizando el HTML final renderizado; así se detectan posibles problemas introducidos por plantillas o extensiones.

Despliegue automático de la documentación

El repositorio cuenta con un flujo de trabajo de GitHub Actions que instala las dependencias de documentación y ejecuta mkdocs gh-deploy cada vez que se hace push sobre la rama main. La acción utiliza el GITHUB_TOKEN integrado del repositorio con permisos de escritura sobre el historial para publicar el sitio en la rama gh-pages.

Para completar la configuración es necesario habilitar GitHub Pages desde Settings → Pages y seleccionar GitHub Actions como fuente de despliegue. Tras guardar los cambios, cada actualización en main generará y publicará automáticamente la última versión de la documentación.

Configuración de LeptonicGuard

  • De forma predeterminada utiliza InMemoryTokenStore, un almacén en memoria que no requiere configuración adicional.
  • Los tokens emitidos caducan automáticamente (TTL configurable, 5 minutos por defecto) y se registran eventos de auditoría accesibles mediante POST /audit/events.
  • Para reutilizar tokens entre procesos se puede instalar la dependencia opcional redis e inicializar el guardián con RedisTokenStore:
    from redis import Redis
    from holonet.security.leptonic_guard import LeptonicGuard
    from holonet.security.token_store import RedisTokenStore
    
    guard = LeptonicGuard(store=RedisTokenStore(Redis.from_url("redis://localhost:6379/0")))
    
  • En entornos de pruebas se recomienda inyectar un stub que implemente TokenStoreProtocol para verificar la emisión y validación de tokens.
  • La API REST incorpora POST /nodes/register para asociar un secreto compartido a cada nodo antes de solicitar tokens con POST /token.

Repositorio de ejemplos

El directorio examples/ agrupa proyectos listos para clonar o copiar dentro de otros repositorios:

  • Flask: microservicio que utiliza MTQBridge para exponer un endpoint REST con resultados de túneles cuánticos simulados.
  • FastAPI: API asíncrona con streaming de eventos MTQ y validación mediante pydantic.
  • Sockets MTQ: servidor y cliente que intercambian marcos ópticos encapsulados a través de sockets TCP convencionales, demostrando la capa túnel clásica.

Cada ejemplo incluye instrucciones de ejecución y comandos de prueba rápidos. Se puede utilizar como base de un repositorio externo dedicado a demostraciones.

Contenedor Docker experimental

El directorio docker/ contiene un Dockerfile listo para construir un contenedor con la red tunelada simulada. La imagen instala holonet-py, expone scripts para activar una topología MTQ mínima y configura tmux para observar los túneles generados. Ejemplo rápido de construcción y ejecución:

docker build -t holonet-sandbox docker/
docker run --rm -it -p 8000:8000 holonet-sandbox

El contenedor inicia un uvicorn con el demo de FastAPI y mantiene disponible una sesión interactiva para ejecutar los demás ejemplos.

Metadata

Release files for holonet-py 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for holonet-py 1.0.0
File Size Uploaded Provenance Actions
holonet_py-1.0.0.tar.gz 74.1 kB Without provenance Details for holonet_py-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for holonet-py 1.0.0
File Interpreter ABI Platform Actions
holonet_py-1.0.0-py3-none-any.whl Python 3 none any Details for holonet_py-1.0.0-py3-none-any.whl

Total release size: 144.9 kB

Release files / holonet_py-1.0.0.tar.gz

Download URL holonet_py-1.0.0.tar.gz
Size 74.1 kB
Tags Source
SHA-256 checksum
How to use checksums
71f24faf56c2e53152e04a3370c97e82ea899671d8587992dd97d69db4441013
BLAKE2b-256 checksum
How to use checksums
93406da3d972a9af1168ee2834c41b50601ec9f5ee35190da21cce1ae1a6f4a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / holonet_py-1.0.0-py3-none-any.whl

Download URL holonet_py-1.0.0-py3-none-any.whl
Size 70.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7f23c9b2d2b6c33c496ba38639758aa43e317dbff42e78d9703e9db28da8081e
BLAKE2b-256 checksum
How to use checksums
68b6fecb68a4517651273d3cd3b654bd71fb56b556ce92251e7cb862cf4d3690
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Security for holonet-py 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page