Ir al contenido

QuantumAplicaciones web a partir de páginas declarativas

Base de datos, formularios, sesiones e IA en el lenguaje. Sin cadena de build, sin JavaScript, sin framework de front-end.

Traducción automática

Esta página se tradujo automáticamente del inglés y todavía no la revisó un hablante nativo; las correcciones son bienvenidas en GitHub. Si algo no coincide, vale el original en inglés. Por ahora, la mayor parte de la documentación está en inglés.

Bienvenido a Quantum ​

Quantum construye aplicaciones web a partir de páginas XML declarativas; la misma página también funciona en una terminal y en una ventana de escritorio. Inspirado en ColdFusion y Adobe Flex, te permite construir herramientas internas, paneles y aplicaciones de IA sin escribir JavaScript. ¿Por qué Quantum?

Ejemplo rápido ​

Una página que lista notas desde una base de datos y agrega una desde un formulario, con la regla del campo, la inserción y el mensaje posterior incluidos:

xml
<q:component name="Notes">
  <q:action name="add" method="POST">
    <q:param name="title" required="true" minlength="3" />
    <q:query name="added" datasource="db">
      INSERT INTO notes (title) VALUES (:title)
      <q:param name="title" value="{title}" type="string" />
    </q:query>
    <q:redirect url="/" flash="Added: {title}" />
  </q:action>

  <q:query name="notes" datasource="db">SELECT title FROM notes ORDER BY id</q:query>

  <h1>Notes ({notes_result.recordCount})</h1>
  <q:if condition="flash"><p class="flash">{flash}</p></q:if>
  <form method="POST" action="/?action=add">
    <input name="title" />
    <button>Add</button>
  </form>
  <ul>
    <q:loop query="notes"><li>{notes.title}</li></q:loop>
  </ul>
</q:component>

Esta página y su prueba se ejecutan en cada cambio; ver la receta A first test with quantum test (en inglés).

Funcionalidades principales ​

El lenguaje ​

  • Componentes: archivos .q reutilizables con parámetros y valores de retorno
  • Manejo de estado: q:set para variables con validación y verificación de tipos
  • Bucles: iteraciones sobre rangos, arrays, listas y consultas con q:loop
  • Condicionales: q:if/q:elseif/q:else completos
  • Funciones: lógica reutilizable con q:function

Pantallas (ui:*) ​

  • Un conjunto del Núcleo: ventanas, cajas, paneles, tablas, listas, formularios y campos (UI)
  • Tres renderizadores: navegador, terminal y ventana de escritorio, a partir de la misma página
  • Formularios desde las acciones: los campos, las reglas y los errores vienen de los q:param de la acción
  • Tablas desde las consultas: paginación, búsqueda mientras escribes, celdas ordenables y editables

Backend ​

  • Consultas a bases de datos: SQL con parámetros, planes de esquema, historial de cambios, quantum check
  • Autenticación: manejo de sesiones y control de acceso por roles
  • Importación de datos: fuentes JSON, CSV y XML
  • Archivos y correo: archivos subidos, descargas protegidas y q:mail (guía)
  • IA: q:llm con fuentes y streaming, q:knowledge, q:agent (guía)

Filosofía ​

Simplicidad por encima de la configuración

Quantum prioriza la legibilidad y la facilidad de uso. Si sabes XML y SQL, puedes construir aplicaciones completas.

Primeros pasos ​

bash
pip install quantum-framework
quantum start          # in an application folder; the guide builds one step by step

Lee la guía de inicio rápido

Licencia MIT · Hecho con VitePress