aiosqlitepool — пул соединений для SQLite в asyncio-приложениях.
aiosqlitepool — это высокопроизводительный пул соединений для асинхронных SQLite-приложений. Он устраняет издержки на создание/закрытие соединений и ускоряет работу с БД за счёт повторного использования «горячих» соединений.
async with pool.connection() as conn:
await conn.execute("INSERT INTO users VALUES (?)", ("Alice",))
await conn.commit()
#Python #SQLite #AsyncIO #FastAPI #aiosqlite #aiosqlitepool #Backend #Performance #DevTools #WebDev #DataEngineering #Database
https://github.com/slaily/aiosqlitepool
Please open Telegram to view this post
VIEW IN TELEGRAM
AuthTuna — современный асинхронный фреймворк безопасности для Python.
pip install authtuna fastapi uvicorn[standard] asyncpg aiosqlite python-dotenv
from fastapi import FastAPI, Depends
from authtuna.middlewares.session import DatabaseSessionMiddleware
from authtuna.integrations.fastapi_integration import get_current_user
app = FastAPI()
app.add_middleware(DatabaseSessionMiddleware)
@app.get("/me")
async def me(user=Depends(get_current_user)):
return {"id": user.id, "username": user.username}
#Python #FastAPI #Security #Auth #RBAC #SSO #MFA #Async #DevTools #OpenSource
https://github.com/shashstormer/authtuna
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - shashstormer/AuthTuna: This is a plug and play auth library with features enough for all purposes from simple auth to…
This is a plug and play auth library with features enough for all purposes from simple auth to SSO, RBAC and passkeys while the core is framework agnostic it is specialized for fastapi. - shashsto...
1⚡3🔥2 2
holm — это фреймворк для веб-разработки, который приносит опыт Next.js в мир Python.
Построен на FastAPI, htmy и FastHX — без сборки, без JS-зависимостей, только серверный рендеринг и чистый Python.
pip install holm
#Python #FastAPI #Nextjs #HTMX #SSR #WebFramework #htmy #FastHX #DevTools
https://github.com/volfpeter/holm
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - volfpeter/holm: Web development framework that brings the Next.js developer experience to Python, built on FastAPI, htmy…
Web development framework that brings the Next.js developer experience to Python, built on FastAPI, htmy, and FastHX. - volfpeter/holm
1👍3⚡2
Air — современный фреймворк, который объединяет FastAPI, Starlette и Pydantic, привнося в Python тот же комфорт, что Next.js дал JavaScript.
pip install -U air
#Python #FastAPI #WebFramework #HTMX #Jinja2 #Pydantic #AirFramework #WebDev #AsyncPython
https://github.com/feldroy/air
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - feldroy/air: The first web framework designed for AI to write. Built on Python, FastAPI, Pydantic, and HTMX. By the authors…
The first web framework designed for AI to write. Built on Python, FastAPI, Pydantic, and HTMX. By the authors of Two Scoops of Django. - feldroy/air
1⚡3👍3
Fastapi-voyager — это инструмент, который строит наглядную диаграмму всех роутов, схем и зависимостей вашего FastAPI-приложения.
Он помогает понять архитектуру, найти проблемы в связях данных, увидеть, какие модели используются эндпоинтами — и всё это в интерактивном веб-интерфейсе.
#FastAPI #Python #API #Visualization #DeveloperTools #Pydantic #Architecture #Graphviz #OpenSource #Backend
https://github.com/allmonday/fastapi-voyager
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - KLR-Pattern/fastapi-voyager: Visualize your API endpoints and explore them interactively, also support Django ninja &…
Visualize your API endpoints and explore them interactively, also support Django ninja & Litestar - KLR-Pattern/fastapi-voyager
🔥3👍1
FastAPI + NiceGUI Full-Stack Template — это готовый шаблон для создания полноценных веб-приложений на Python.
Бэкенд на FastAPI + фронтенд на NiceGUI → и всё это пишется только на Python, без HTML, CSS и JavaScript.
#FastAPI #NiceGUI #Python #FullStack #WebDev #Backend #Frontend #SQLModel #PostgreSQL #Docker #JWT #Uvicorn
https://github.com/jaehyeon-kim/nicegui-fastapi-template
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - jaehyeon-kim/nicegui-fastapi-template: A template for rapidly building full-stack web applications in Python, featuring…
A template for rapidly building full-stack web applications in Python, featuring a FastAPI backend, a NiceGUI frontend, PostgreSQL, and Docker. - jaehyeon-kim/nicegui-fastapi-template
1👍2 2
Embar — это новый ORM для Python с сильной типизацией и SQL‑образным синтаксисом, вдохновлённый Drizzle и рассчитанный на Python 3.14 и выше.
Embar ставит целью сделать работу с БД в Python максимально типобезопасной: ваш type checker знает валидные аргументы и точные типы результатов, а LSP подсказывает, как собрать нужный запрос. Запросы пишутся в SQL‑подобном стиле, но при этом вы всегда можете просто использовать сырой SQL, когда нужно.
Сейчас Embar поддерживает три клиента: SQLite 3 через стандартную библиотеку, Postgres через psycopg3 и Postgres через async‑клиент psycopg3 (рекомендуется именно async‑вариант). Для валидации используется Pydantic, а дизайн библиотеки хорошо ложится на привычные сценарии с FastAPI.
Embar активно использует новые template strings (t‑строки), поэтому поддерживает только Python 3.14. Есть CLI для генерации миграций с помощью LLM и ANTHROPIC_API_KEY, но корректный diff миграций пока в разработке.
#python #orm #asyncio #postgres #sqlite #typing #pydantic #python314 #fastapi #drizzleinspired
https://github.com/carderne/embar
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - carderne/embar: A Python ORM with types
A Python ORM with types. Contribute to carderne/embar development by creating an account on GitHub.
1👍2🔥1
Svc-infra — это библиотека для FastAPI, которая упаковывает всю типовую backend-инфраструктуру (авторизацию, биллинг, фоновые задачи, вебхуки, кеширование) в готовые к использованию компоненты.
#Python #FastAPI #Backend #API #WebDev #DevOps #SaaS #Microservices #Infrastructure #OpenSource #Coding #Programming #SoftwareDevelopment #CloudNative #ProductionReady
https://github.com/nfraxlab/svc-infra
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - nfraxlab/svc-infra: Production-ready backend infrastructure SDK for Python
Production-ready backend infrastructure SDK for Python - nfraxlab/svc-infra
1👍3🔥1
FastScheduler — это простой, лёгкий планировщик задач для Python с поддержкой async, учётом часовых поясов, cron‑выражениями и удобным дашбордом.
@scheduler.every(10).seconds, @scheduler.daily.at("09:00"), @scheduler.cron("*/15 * * * *") вешаются прямо на функции (sync или async). .timeout(30), ретраи .retries(5) с экспоненциальным backoff, отключение догоняющих запусков .no_catch_up(), pause/resume/cancel по ID или имени функции. базово:
pip install fastscheduler.с дашбордом:
pip install fastscheduler[fastapi]. с cron:
pip install fastscheduler[cron]. всё сразу:
pip install fastscheduler[all]. from fastscheduler import FastScheduler
scheduler = FastScheduler(quiet=True)
@scheduler.every(10).seconds
def task():
print("Task executed")
@scheduler.daily.at("14:30")
async def daily_task():
print("Daily task at 2:30 PM")
scheduler.start()
#FastScheduler #Python #Async #TaskScheduler #Cron #FastAPI #BackgroundJobs #DevTools #Monitoring #DeadLetterQueue
https://github.com/MichielMe/fastscheduler
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - MichielMe/fastscheduler: Decorator-first Python scheduler — cron/interval/at jobs with simple persistence and built-in…
Decorator-first Python scheduler — cron/interval/at jobs with simple persistence and built-in run history. - MichielMe/fastscheduler
1 2⚡1👍1
Violit — это высокопроизводительный Python‑фреймворк для UI, вдохновлённый Streamlit, но с O(1)‑обновлением состояния без полного перезапуска скрипта и с режимом десктоп‑приложения.
app.write, app.button, app.metric, app.columns и т.п., плюс сигнал‑based app.state(...), так что миграция со Streamlit занимает минуты.--native --splash) через pywebview: превращает приложение в настольное без Electron и Node.js. [github](https://github.com/violit-dev/violit)App(theme='cyberpunk', ...) или app.set_theme('ocean'), без верстки и CSS.pip install violit
import violit as vl
app = vl.App(title="Hello Violit", theme="ocean")
count = app.state(0)
app.button("Increase", on_click=lambda: count.set(count.value + 1))
app.write("Count:", count)
app.run()
Скрипт выполняется один раз, дальше всё держится на реактивном состоянии.
#Violit #Python #Streamlit #WebFramework #FastAPI #ReactiveUI #ZeroRerun #Dashboard #DataApps #DesktopApp
https://github.com/violit-dev/violit
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - violit-dev/violit: Pure Python Web Framework. Streamlit simplicity, no reruns.
Pure Python Web Framework. Streamlit simplicity, no reruns. - violit-dev/violit
1⚡3 2
Oxyde ORM — асинхронный type‑safe ORM с Pydantic v2 и быстрым Rust‑ядром, сделанный в духе Django ORM, но с современным API и предсказуемым поведением.
User.objects.filter(...), аннотации полей и Meta‑класс для таблиц.oxyde-core), что даёт высокий ops/sec в бенчмарках против популярных ORM.asyncio, с поддержкой PostgreSQL, SQLite и MySQL, транзакций и nested transaction.atomic().db.lifespan(...) для подключения БД на уровне приложения. pip install oxyde
from oxyde import Model, Field
class User(Model):
id: int | None = Field(default=None, db_pk=True)
name: str
email: str = Field(db_unique=True)
#python #orm #asyncio #pydantic #rust #fastapi #postgresql #sqlite #mysql
https://github.com/mr-fatalyst/oxyde
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - mr-fatalyst/oxyde: Oxyde ORM is a type-safe, Pydantic-centric asynchronous ORM with a high-performance Rust core designed…
Oxyde ORM is a type-safe, Pydantic-centric asynchronous ORM with a high-performance Rust core designed for clarity, speed, and reliability. - mr-fatalyst/oxyde
⚡2👍2 2
sprint-dash — это лёгкий спринт‑дашборд для Gitea на FastAPI + HTMX + SQLite: Kanban‑доска, backlog, burndown, зависимости, Woodpecker CI‑статус — без JS‑фреймворков и билда.
sd-cli: sd-cli sprint create 48 --start 2026-03-09 --end 2026-03-23. git clone https://github.com/simoninglis/sprint-dash.git
uv sync
cp .env.example .env # GITEA_URL + token
uv run uvicorn app.main:app --reload
Docker:
docker run -p 8080:8080 --env-file .env sprint-dash #python #gitea #fastapi #htmx #sprint #dashboard #sprintrack
https://github.com/simoninglis/sprint-dash
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - simoninglis/sprint-dash: Lightweight sprint dashboard for Gitea — FastAPI + HTMX + SQLite
Lightweight sprint dashboard for Gitea — FastAPI + HTMX + SQLite - simoninglis/sprint-dash
1🔥3👍2
TurboAPI — быстрая замена FastAPI: Zig‑сервер ускоряет API в 10–14 раз (140k запросов/с без кэша), меняешь 1 строку импорта — код работает как раньше.
from turboapi import TurboAPI as FastAPI
app = TurboAPI()
@app.get("/") def hi(): return {"ok": True}
app.run()
#python #FastAPI #API #Zig #TurboAPI
https://github.com/justrach/turboAPI
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - justrach/turboAPI: FastAPI-compatible Python framework with Zig HTTP core; 7x faster, free-threading native
FastAPI-compatible Python framework with Zig HTTP core; 7x faster, free-threading native - justrach/turboAPI
1🔥4👍3⚡1
rsloop — это альтернативный event loop для
asyncio, написанный на Rust через PyO3.Каждый
rsloop.Loop держит выделенный Rust‑поток для координации цикла и I/O, при этом ваши Python‑корутины продолжают выполняться в том же потоке, откуда вы вызываете run_forever() / run_until_complete() (обычно main‑поток).pip install rsloop
# или
uv add rsloop
import rsloop
async def main():
...
rsloop.run(main())
Или вручную:
import asyncio, rsloop
loop = rsloop.new_event_loop()
asyncio.set_event_loop(loop)
try:
loop.run_until_complete(...)
finally:
asyncio.set_event_loop(None)
loop.close()
compio с io_uring), Python‑колбэки и таски остаются на Python‑потоке.run_in_executor, TCP/Unix сокеты, пайпы, сабпроцессы, сигналы, Windows‑пайпы и subprocess‑workflow.rsloop патчит asyncio.open_connection() и asyncio.start_server() для использования нативных быстрых стримов, когда запущен rsloop.Loop и не используется TLS; поведение можно отключить через RSLOOP_USE_FAST_STREAMS=0.with rsloop.profile(): rsloop.run(main()) или ручное start_profiler()/stop_profiler() при сборке с фичей profiler.asyncio и близок к uvloop, иногда чуть медленнее по задачам, но выигрывает по p99‑латентности в реальных API‑нагрузках.#python #asyncio #rust #rsloop #eventloop #io_uring #fastapi #uvloop #PyO3 #profiling
https://github.com/RustedBytes/rsloop
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - RustedBytes/rsloop: An event loop for asyncio written in Rust
An event loop for asyncio written in Rust. Contribute to RustedBytes/rsloop development by creating an account on GitHub.
1🔥4👍3
PyWry — это мощный кроссплатформенный рендеринг-движок и UI-тулкит для Python, который позволяет создавать интерактивные приложения с одним и тем же кодом для трех разных сред:
.exe/.app (через PyInstaller).app.emit() и app.on().pip install pywryБыстрый старт (Нативный UI):
from pywry import PyWry
app = PyWry()
app.show("<h1>Hello World!</h1>")
app.block()
#Python #UI #PyWry #DataScience #WebDev #FastAPI #Jupyter #DevTools #OpenSource
https://github.com/deeleeramone/PyWry
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - deeleeramone/PyWry: PyWry is a cross-platform app factory, rendering engine and UI toolkit for Python that produces native…
PyWry is a cross-platform app factory, rendering engine and UI toolkit for Python that produces native desktop, web, and notebook experiences from a single API. - deeleeramone/PyWry
1🔥3⚡2
Kirokyu — это локальная (local-first) система управления задачами, написанная на Python, с чистой и гибкой модульной архитектурой.
Проект создан для того, чтобы помочь вам организовывать, отслеживать и выполнять задачи в полностью изолированных рабочих пространствах (workspaces). Каждое такое пространство — это отдельный "бункер" данных со своей собственной базой.
Доменное ядро (бизнес-логика) абсолютно не зависит от инфраструктуры. Хранение данных, механизмы доставки и UI — это просто сменные адаптеры. Это значит, что к одной и той же логике вы можете обращаться через три совершенно разных интерфейса:
streamlit run src/kirokyu/adapters/ui/app.py).kirokyu task create "Купить продукты").uvicorn kirokyu.adapters.api.app:app --reload).Легко разделяйте личные и рабочие дела. Каждый воркспейс хранится в отдельном файле базы данных SQLite в директории
~/.kirokyu/workspaces/.kirokyu workspace create personal
kirokyu workspace create work
Благодаря чистой архитектуре, тип базы данных можно сменить одной переменной окружения
KIROKYU_ADAPTER:sqlite — локальная БД (по умолчанию).json — сохранение в JSON-файл.memory — хранение в оперативной памяти (идеально для тестов).#Python #TaskTracker #HexagonalArchitecture #CleanArchitecture #FastAPI #Streamlit #CLI #OpenSource #DevTools
https://github.com/amryounis/kirokyu
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - amryounis/kirokyu: 🚀 Modular task management system built with Hexagonal Architecture. Features a FastAPI backend and…
🚀 Modular task management system built with Hexagonal Architecture. Features a FastAPI backend and Streamlit frontend. - amryounis/kirokyu
2 3👍2🔥1
Fstache - это быстрый движок шаблонизации Mustache для Python 3.12+, созданный без единой сторонней зависимости (dependency-free).
Инструмент разработан специально для серверной веб-разработки в стиле HTML-over-the-wire (в связке с HTMX, Alpine.js и Tailwind CSS). Когда сервер рендерит готовую HTML-разметку фрагментами или целиком, скорость шаблонизатора становится критически важной — особенно на бюджетных VPS. Fstache решает эту задачу за счет глубокой оптимизации и предварительной компиляции компонентов.
partials) загружаются и встраиваются в память заранее, полностью убирая накладные расходы при вызове во время обработки запроса.iter_chunks()), что позволяет передавать готовый HTML в браузер частями через StreamingResponse в Starlette, FastAPI или Flask.callables).Установка:
pip install fstache
Использование в коде:
import fstache
# Создаем рендерер для продакшена (шаблоны предзагружаются один раз)
render = fstache.create_prod_renderer("./templates")
# Рендерим страницу
result = render("pages/home.mustache", {"name": "Ада"})
# Получаем результат в виде строки или байтов
print(result.to_string())
Библиотека предоставляет готовые пресеты для разных этапов разработки:
create_dev_renderer() — подхватывает изменения файлов на лету без перезапуска сервера.create_test_renderer() — строго отлавливает пропущенные переменные и шаблоны во время прогона тестов.create_prod_renderer() — обеспечивает максимальную скорость и стабильность в продакшене.#Python #Mustache #HTMX #WebDev #Backend #FastAPI #Flask #Starlette #DevTools #OpenSource
https://github.com/servletcloud/fstache
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - servletcloud/fstache: Fast dependency-free, typed Mustache renderer for Python 3.12+
Fast dependency-free, typed Mustache renderer for Python 3.12+ - servletcloud/fstache
1👍2🔥2 2
Envgap - это диагностическая консольная утилита для Python-проектов, которая находит расхождения и рассинхрон между файлами
.env, .env.example, переменными окружения в shell и вызовами в коде (os.environ, os.getenv или Pydantic BaseSettings).Утилита не загружает ваши конфигурации в рантайм приложения. Её главная задача — показать, почему переменная окружения работает на вашей локальной машине, но внезапно вызывает сбой в CI/CD, внутри Docker-контейнера или на ПК другого разработчика.
DB_URL вместо DATABASE_URL)..env.example, в которых забыли указать новые переменные.changeme, todo или your-key-here.BaseSettings, алиасы, префиксы и дефолтные значения.Если в коде приложения указано:
import os
DATABASE_URL = os.environ["DATABASE_URL"]
А в файле
.env прописано DB_URL=postgres://localhost/app, утилита покажет четкий диагноз:DATABASE_URL отсутствует в .env (ошибка).DB_URL в .env может быть опечаткой для DATABASE_URL (предложение переименовать).Установка через pip:
pip install envgap
Запуск проверки в текущем проекте:
envgap check
Использование в CI пайплайнах (строгий режим с выходом с кодом 1 при предупреждениях):
envgap check --ci
#Python #DevTools #FastAPI #Docker #CICD #Dotenv #Pydantic #Backend #OpenSource #Debugging
https://github.com/Pinak-Datta/envgap
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - Pinak-Datta/envgap: enFind gaps between .env, .env.example, shell variables, and Python code.
enFind gaps between .env, .env.example, shell variables, and Python code. - Pinak-Datta/envgap
1👍3🔥3 2
Tortoise ORM - это простая и производительная асинхронная ORM (Object-Relational Mapper) для Python 3.10+, созданная под сильным вдохновением от Django ORM.
Библиотека разработана специально для
asyncio и сочетает привычный, выразительный синтаксис моделей Django с нативной асинхронностью, избавляя от бойлерплейта и необходимости писать «сырые» SQL-запросы в асинхронных микросервисах.async/await) без блокировки event loop.Model, строгая типизация полей (fields), поддержка связей ForeignKeyField / ManyToManyField и удобный QuerySet (filter, annotate, prefetch_related).asyncpg, psycopg)asyncmy, aiomysql)aiosqlite)asyncodbc)tortoise makemigrations, tortoise migrate, tortoise sqlmigrate) для автоматического отслеживания изменений схем и генерации миграций.1. Определение моделей:
from tortoise import fields
from tortoise.models import Model
class Tournament(Model):
id = fields.IntField(primary_key=True)
name = fields.CharField(max_length=50)
class Event(Model):
id = fields.BigIntField(primary_key=True)
name = fields.TextField()
tournament = fields.ForeignKeyField('models.Tournament', related_name='events')
2. Инициализация и работа с данными:
import asyncio
from tortoise import Tortoise
async def main():
# Подключение к БД
await Tortoise.init(
db_url='sqlite://db.sqlite3',
modules={'models': ['__main__']}
)
# Генерация таблиц (для dev-режима)
await Tortoise.generate_schemas()
# Создание записей
tournament = await Tournament.create(name='Cyber Cup 2026')
await Event.create(name='Final Match', tournament=tournament)
# Выборка с подгрузкой связанных связей
events = await Event.filter(tournament=tournament).prefetch_related('tournament')
for event in events:
print(f"Событие: {event.name}, Турнир: {event.tournament.name}")
await Tortoise.close_connections()
asyncio.run(main())
# Базовая версия (SQLite):
pip install tortoise-orm
# С драйвером для PostgreSQL:
pip install "tortoise-orm[asyncpg]"
# С драйвером для MySQL:
pip install "tortoise-orm[asyncmy]"
#Python #TortoiseORM #ORM #AsyncIO #FastAPI #PostgreSQL #MySQL #Database #Backend #DevTools #OpenSource
https://github.com/tortoise/tortoise-orm
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - tortoise/tortoise-orm: Familiar asyncio ORM for python, built with relations in mind
Familiar asyncio ORM for python, built with relations in mind - tortoise/tortoise-orm
Citry - это строго типизированный фронтенд-фреймворк для Python, объединяющий серверные события и Alpine.js для создания реактивных веб-интерфейсов без необходимости вести отдельный frontend-проект на JavaScript.
Архитектура проекта вдохновлена идеями Vue и Laravel Livewire: один Python-компонент инкапсулирует HTML-разметку, стили CSS, логику браузера, серверные обработчики событий и переводы интерфейса.
Kwargs). Опечатки в свойствах или пропущенные поля отлавливаются на этапе статического анализа, а метод template_data() изолирует контекст, доступный шаблону.<c-ComponentName>, а атрибуты с префиксом c- вычисляют Python-выражения (например, c-messages="user.inbox").citry check --static).citry-ui) — диалоги, формы, навигация и таблицы.from citry import Component
class Welcome(Component):
class Kwargs:
name: str
messages: list[str]
def template_data(self, kwargs, slots):
return {
"name": kwargs.name,
"messages": kwargs.messages,
}
template = """
<section class="welcome">
<h1>С возвращением, {{ name }}!</h1>
<ul>
<li c-for="message in messages">{{ message }}</li>
<li c-empty>Новых сообщений нет.</li>
</ul>
</section>
"""
css = """
.welcome { border-top: 3px solid #2563eb; }
"""
# Рендеринг компонента в HTML-строку
html = str(Welcome(name="Алексей", messages=["Сборка завершена", "Отчет готов"]))
pip install citry
# или через uv:
uv add citry
#Citry #Python #Frontend #Fullstack #FastAPI #Django #Flask #AlpineJS #Livewire #WebDev #OpenSource #DevTools
https://github.com/citry-dev/citry
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - citry-dev/citry: Fully typed frontend framework for Python with server events and Alpine.js, inspired by Vue and Livewire.
Fully typed frontend framework for Python with server events and Alpine.js, inspired by Vue and Livewire. - citry-dev/citry