Pitch: Violit - Construindo Web Apps em Python com a Reatividade do React
Olá, pessoal do TabNews!
Sou um desenvolvedor que adora a simplicidade do Streamlit para prototipagem rápida. No entanto, conforme meus projetos cresceram, encontrei um grande problema: o "Full-Script Rerun". Qualquer clique em um botão reinicia todo o script Python, o que torna a experiência lenta e ineficiente para apps complexos.
Para resolver isso, desenvolvi o Violit, um framework open-source focado em trazer reatividade granular (Fine-grained Reactivity) para o ecossistema Python.
Por que o Violit traz "Valor Concreto" para desenvolvedores?
- Reatividade estilo React: Usamos o conceito de "Signals" (inspirado no Solid.js) através do FastAPI e Shoelace. Quando um estado muda, apenas o componente específico é atualizado. Nada de recarregar a página inteira.
- Performance de alto nível: Em nossos benchmarks, o Violit renderiza 1 milhão de pontos de dados em apenas 24ms, enquanto frameworks tradicionais podem levar mais de 300ms.
- Curva de aprendizado zero: Se você conhece Streamlit, dominará o Violit em 10 minutos. A sintaxe é 90% idêntica.
- Design Moderno: Oferecemos mais de 20 temas integrados (Cyberpunk, Dracula, etc.) que podem ser aplicados com uma única linha de código.
Exemplo de código:
import violit as vl
app = vl.App(title="Exemplo TabNews")
# Declaração de estado (Reativo)
count = app.state(0)
# Apenas a variável 'count' é atualizada no clique, sem rerun do script.
app.button("Incrementar", on_click=lambda: count.set(count.value + 1))
app.text("Contagem atual:", count)
app.run()
O projeto é Open Source e estamos na versão v0.1.12. O Violit também segue a filosofia API First, permitindo integrações flexíveis e até o uso como App Desktop via pywebview.
Adoraria receber o feedback técnico de vocês. Como podemos melhorar a gestão de estado em Python para torná-la ainda mais eficiente?
⭐ GitHub: https://github.com/violit-dev/violit
🌐 Official Website(Feito com Violit): https://violit.cloud/