Pular para o conteúdo

QuantumAplicações web a partir de páginas declarativas

Banco de dados, formulários, sessões e IA na linguagem. Sem cadeia de build, sem JavaScript, sem framework de front-end.

Tradução automática

Esta página foi traduzida automaticamente do inglês e ainda não foi revisada; correções são bem-vindas no GitHub. Se algo não bater, vale o original em inglês. Por enquanto, a maior parte da documentação está em inglês.

Bem-vindo ao Quantum ​

O Quantum constrói aplicações web a partir de páginas XML declarativas — a mesma página também roda num terminal e numa janela de desktop. Inspirado no ColdFusion e no Adobe Flex, ele permite construir ferramentas internas, painéis e aplicações de IA sem escrever JavaScript. Por que Quantum?

Exemplo rápido ​

Uma página que lista notas de um banco de dados e adiciona uma a partir de um formulário — com a regra do campo, a inserção e a mensagem depois dela:

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 e o teste dela rodam a cada mudança; veja a receita A first test with quantum test (em inglês).

Principais recursos ​

A linguagem ​

  • Componentes: arquivos .q reutilizáveis, com parâmetros e valores de retorno
  • Estado: q:set para variáveis, com validação e verificação de tipos
  • Laços: iteração sobre intervalos, arrays, listas e consultas com q:loop
  • Condicionais: q:if/q:elseif/q:else completos
  • Funções: lógica reutilizável com q:function

Telas (ui:*) ​

  • Um conjunto essencial: janelas, caixas, painéis, tabelas, listas, formulários e campos (UI)
  • Três renderizadores: navegador, terminal e janela de desktop, a partir da mesma página
  • Formulários a partir das ações: campos, regras e erros vêm dos q:param da ação
  • Tabelas a partir das consultas: paginação, busca enquanto você digita, células ordenáveis e editáveis

Backend ​

  • Consultas ao banco: SQL com parâmetros, planos de esquema, histórico de mudanças, quantum check
  • Autenticação: gestão de sessões e controle de acesso por papéis
  • Importação de dados: fontes JSON, CSV e XML
  • Arquivos e e-mail: uploads, downloads protegidos e q:mail (guia)
  • IA: q:llm com fontes e streaming, q:knowledge, q:agent (guia)

Filosofia ​

Simplicidade acima de configuração

O Quantum prioriza a legibilidade e a facilidade de uso. Se você sabe XML e SQL, consegue construir aplicações completas.

Primeiros passos ​

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

Leia o início rápido

Licença MIT · Feito com VitePress