home.social

#fastapi — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #fastapi, aggregated by home.social.

  1. Как я сделал “Авиасейлз для логистики”: агрегатор заявок из 16+ источников

    В логистике проблема часто не в том, что нет данных. Проблема в том, что данные разбросаны по разным местам. Одни заявки лежат во внутренней системе, другие — в закрытых кабинетах грузоотправителей, третьи — на тендерных площадках, четвёртые приходят через Excel-выгрузки, пятые доступны только через веб-интерфейс. Где-то есть нормальный HTTP-обмен, где-то данные спрятаны за фронтендом, где-то приходится читать DOM-таблицу, а где-то сначала кажется, что всё просто, пока не выясняется, что цена приходит в копейках, маршрут состоит из трёх точек, а тип кузова записан как “тент 20т, верхняя загрузка”. Для менеджера всё это выглядит не как единый рынок грузов, а как набор вкладок в браузере. Открыть один кабинет. Потом второй. Потом третий. Проверить направление. Сравнить цену. Посмотреть дату. Понять, где реф, где тент, где просто “20 тонн”. Не забыть про аукцион, у которого скоро истекает время. Потом всё равно перенести результат в таблицу или открыть внутреннюю панель. В какой-то момент стало понятно: нам нужен не ещё один парсер, а единая витрина. Так появился внутренний агрегатор заявок — условный “Авиасейлз для логистики”.

    habr.com/ru/articles/1035316/

    #логистика #автоматизация #парсинг_данных #агрегатор_заявок #ETL #PostgreSQL #Python #Google_Sheets #FastAPI

  2. Production-стек для мессенджера на 10к пользователей: FastAPI, SQLite в проде и почему монолит

    Это восьмая статья из моей серии про инженерные решения в ONEMIX. До этого было про клиентскую часть мессенджера: кэш сообщений , E2E , WebRTC звонки , Electron , outbox-паттерн . Параллельно про AI-агента Лиру и мнение про вайб-кодинг . Сегодня про серверную сторону. Backend ONEMIX — это один файл main.py на 19603 строки , 379 эндпоинтов, FastAPI + SQLite, держит мессенджер с регистрацией через SMS, звонками через LiveKit, E2E через Double Ratchet, push-нотификациями на iOS и Android. Этот файл я пишу больше года. За это время он эволюционировал из прототипа на 800 строк в production монолит. В статье разберу почему стек именно такой, какие решения оказались правильными, какие я бы поменял если бы начинал сейчас, и где у этого подхода границы применимости. Сразу важная оговорка. У меня не было требования держать 100к одновременных пользователей или 10к RPS. Это бэкенд под мобильное приложение с трафиком который для соло-разработчика разумно поддерживать одному. Если у вас задачи другого масштаба, мой опыт может не подойти.

    habr.com/ru/articles/1034814/

    #fastapi #sqlite #python #монолит #websocket #мессенджер #бэкенд #продакшн #авторизация #миграции

  3. Production MTProto user-бот на FastAPI + Telethon: WARP для обхода DPI и 5 граблей с Telegram

    В большинстве туториалов по Telegram-ботам всё начинается с одного куска кода: получили токен у @BotFather, поставили python-telegram-bot или aiogram , написали хендлер, deploy. Это Bot API. И в 90% задач этого хватает. А потом приходит задача которую Bot API не закрывает в принципе: программно создать супергруппу под конкретный проект и добавить туда нужных людей по @username , и сделать это десятки раз в день . Bot API такое не умеет даже теоретически - метода «создать группу» там нет, метода «добавить юзера в группу» тоже. Лезете в полную документацию Telegram API искать обход, упираетесь в раздел channels.createChannel / channels.inviteToChannel под MTProto, и начинается совсем другая история - не Bot API, а user-бот через telethon . В этой статье разбираю как мы сделали production MTProto user-бот на FastAPI + Telethon. Под капотом: Cloudflare WARP для обхода DPI (без него с российского VPS просто не подключиться), Singleton-клиент с keepalive, in-memory cache resolve-юзеров, и 5 ограничений Telegram которые знают только те кто лез туда ногами . Реальный production-сервис у клиента в нише строительства/монтажа, обслуживает связку Planfix → Telegram-группы под каждый проект. Сервис написан на Python 3.11. Стек: Telethon 1.43.2, FastAPI 0.136.1, Uvicorn 0.46.0, Pydantic 2.13.4. На VPS под systemd , наружу через Cloudflare Tunnel. Вызывается из n8n через HTTP-ноду.

    habr.com/ru/articles/1034612/

    #telethon #mtproto #telegram #python #fastapi #cloudflare #warp #n8n #socks5 #planfix

  4. Production MTProto user-бот на FastAPI + Telethon: WARP для обхода DPI и 5 граблей с Telegram

    В большинстве туториалов по Telegram-ботам всё начинается с одного куска кода: получили токен у @BotFather, поставили python-telegram-bot или aiogram , написали хендлер, deploy. Это Bot API. И в 90% задач этого хватает. А потом приходит задача которую Bot API не закрывает в принципе: программно создать супергруппу под конкретный проект и добавить туда нужных людей по @username , и сделать это десятки раз в день . Bot API такое не умеет даже теоретически - метода «создать группу» там нет, метода «добавить юзера в группу» тоже. Лезете в полную документацию Telegram API искать обход, упираетесь в раздел channels.createChannel / channels.inviteToChannel под MTProto, и начинается совсем другая история - не Bot API, а user-бот через telethon . В этой статье разбираю как мы сделали production MTProto user-бот на FastAPI + Telethon. Под капотом: Cloudflare WARP для обхода DPI (без него с российского VPS просто не подключиться), Singleton-клиент с keepalive, in-memory cache resolve-юзеров, и 5 ограничений Telegram которые знают только те кто лез туда ногами . Реальный production-сервис у клиента в нише строительства/монтажа, обслуживает связку Planfix → Telegram-группы под каждый проект. Сервис написан на Python 3.11. Стек: Telethon 1.43.2, FastAPI 0.136.1, Uvicorn 0.46.0, Pydantic 2.13.4. На VPS под systemd , наружу через Cloudflare Tunnel. Вызывается из n8n через HTTP-ноду.

    habr.com/ru/articles/1034612/

    #telethon #mtproto #telegram #python #fastapi #cloudflare #warp #n8n #socks5 #planfix

  5. Production MTProto user-бот на FastAPI + Telethon: WARP для обхода DPI и 5 граблей с Telegram

    В большинстве туториалов по Telegram-ботам всё начинается с одного куска кода: получили токен у @BotFather, поставили python-telegram-bot или aiogram , написали хендлер, deploy. Это Bot API. И в 90% задач этого хватает. А потом приходит задача которую Bot API не закрывает в принципе: программно создать супергруппу под конкретный проект и добавить туда нужных людей по @username , и сделать это десятки раз в день . Bot API такое не умеет даже теоретически - метода «создать группу» там нет, метода «добавить юзера в группу» тоже. Лезете в полную документацию Telegram API искать обход, упираетесь в раздел channels.createChannel / channels.inviteToChannel под MTProto, и начинается совсем другая история - не Bot API, а user-бот через telethon . В этой статье разбираю как мы сделали production MTProto user-бот на FastAPI + Telethon. Под капотом: Cloudflare WARP для обхода DPI (без него с российского VPS просто не подключиться), Singleton-клиент с keepalive, in-memory cache resolve-юзеров, и 5 ограничений Telegram которые знают только те кто лез туда ногами . Реальный production-сервис у клиента в нише строительства/монтажа, обслуживает связку Planfix → Telegram-группы под каждый проект. Сервис написан на Python 3.11. Стек: Telethon 1.43.2, FastAPI 0.136.1, Uvicorn 0.46.0, Pydantic 2.13.4. На VPS под systemd , наружу через Cloudflare Tunnel. Вызывается из n8n через HTTP-ноду.

    habr.com/ru/articles/1034612/

    #telethon #mtproto #telegram #python #fastapi #cloudflare #warp #n8n #socks5 #planfix

  6. Production MTProto user-бот на FastAPI + Telethon: WARP для обхода DPI и 5 граблей с Telegram

    В большинстве туториалов по Telegram-ботам всё начинается с одного куска кода: получили токен у @BotFather, поставили python-telegram-bot или aiogram , написали хендлер, deploy. Это Bot API. И в 90% задач этого хватает. А потом приходит задача которую Bot API не закрывает в принципе: программно создать супергруппу под конкретный проект и добавить туда нужных людей по @username , и сделать это десятки раз в день . Bot API такое не умеет даже теоретически - метода «создать группу» там нет, метода «добавить юзера в группу» тоже. Лезете в полную документацию Telegram API искать обход, упираетесь в раздел channels.createChannel / channels.inviteToChannel под MTProto, и начинается совсем другая история - не Bot API, а user-бот через telethon . В этой статье разбираю как мы сделали production MTProto user-бот на FastAPI + Telethon. Под капотом: Cloudflare WARP для обхода DPI (без него с российского VPS просто не подключиться), Singleton-клиент с keepalive, in-memory cache resolve-юзеров, и 5 ограничений Telegram которые знают только те кто лез туда ногами . Реальный production-сервис у клиента в нише строительства/монтажа, обслуживает связку Planfix → Telegram-группы под каждый проект. Сервис написан на Python 3.11. Стек: Telethon 1.43.2, FastAPI 0.136.1, Uvicorn 0.46.0, Pydantic 2.13.4. На VPS под systemd , наружу через Cloudflare Tunnel. Вызывается из n8n через HTTP-ноду.

    habr.com/ru/articles/1034612/

    #telethon #mtproto #telegram #python #fastapi #cloudflare #warp #n8n #socks5 #planfix

  7. Как я сделал AI-директора для малого бизнеса и почему отказался от RAG

    Маленькая компания, человек 20. Гендир тонет в задачах. Помнить кто что обещал, отслеживать движение по целям, держать в голове десяток проектов одновременно. У больших корпораций для этого есть штат руководителей среднего звена и проджектов. У малых есть один директор, который пытается быть всем сразу. Лира берёт на себя часть этой работы. Это не корпоративный чат-бот, не ChatGPT с настройками компании. Конкретный продукт с конкретными функциями:

    habr.com/ru/articles/1034298/

    #ai #llm #claude #rag #aiагенты #agentic_ai #knowledge_graph #python #fastapi #бизнесавтоматизация

  8. 75 картинок ablation: как Reddit-критика заставила меня переосмыслить FLUX-LoRA пайплайн

    Запустил pinock.io — бесплатную ленту AI-генерации животных в стиле советских спичечных коробков. Под капотом FLUX.2-klein + кастомная LoRA + двухпроходный «sandwich»-пайплайн. Получил детальный технический комментарий на r/StableDiffusion с тремя претензиями. Сел и прогнал ablation: 5 вариантов пайплайна × 5 категорий × 3 сида = 75 картинок. Нашёл дыры в собственном пайплайне — в том числе кириллицу прямо в выходе LoRA (training-set leakage) и полный коллапс LoRA при scale=2.0. Текущий sandwich оказался патчем поверх плохо обученной LoRA, а не правильным решением. В статье — все картинки, цифры, и почему оба «правильных» совета критика на текущей модели не сработали. Плюс план переобучения на 1500-датасете.

    habr.com/ru/articles/1031338/

    #FLUX #LoRA #StableDiffusion #ablation #FastAPI #SQLite #pinock #matchbox #vast

  9. 75 картинок ablation: как Reddit-критика заставила меня переосмыслить FLUX-LoRA пайплайн

    Запустил pinock.io — бесплатную ленту AI-генерации животных в стиле советских спичечных коробков. Под капотом FLUX.2-klein + кастомная LoRA + двухпроходный «sandwich»-пайплайн. Получил детальный технический комментарий на r/StableDiffusion с тремя претензиями. Сел и прогнал ablation: 5 вариантов пайплайна × 5 категорий × 3 сида = 75 картинок. Нашёл дыры в собственном пайплайне — в том числе кириллицу прямо в выходе LoRA (training-set leakage) и полный коллапс LoRA при scale=2.0. Текущий sandwich оказался патчем поверх плохо обученной LoRA, а не правильным решением. В статье — все картинки, цифры, и почему оба «правильных» совета критика на текущей модели не сработали. Плюс план переобучения на 1500-датасете.

    habr.com/ru/articles/1031338/

    #FLUX #LoRA #StableDiffusion #ablation #FastAPI #SQLite #pinock #matchbox #vast

  10. 75 картинок ablation: как Reddit-критика заставила меня переосмыслить FLUX-LoRA пайплайн

    Запустил pinock.io — бесплатную ленту AI-генерации животных в стиле советских спичечных коробков. Под капотом FLUX.2-klein + кастомная LoRA + двухпроходный «sandwich»-пайплайн. Получил детальный технический комментарий на r/StableDiffusion с тремя претензиями. Сел и прогнал ablation: 5 вариантов пайплайна × 5 категорий × 3 сида = 75 картинок. Нашёл дыры в собственном пайплайне — в том числе кириллицу прямо в выходе LoRA (training-set leakage) и полный коллапс LoRA при scale=2.0. Текущий sandwich оказался патчем поверх плохо обученной LoRA, а не правильным решением. В статье — все картинки, цифры, и почему оба «правильных» совета критика на текущей модели не сработали. Плюс план переобучения на 1500-датасете.

    habr.com/ru/articles/1031338/

    #FLUX #LoRA #StableDiffusion #ablation #FastAPI #SQLite #pinock #matchbox #vast

  11. 75 картинок ablation: как Reddit-критика заставила меня переосмыслить FLUX-LoRA пайплайн

    Запустил pinock.io — бесплатную ленту AI-генерации животных в стиле советских спичечных коробков. Под капотом FLUX.2-klein + кастомная LoRA + двухпроходный «sandwich»-пайплайн. Получил детальный технический комментарий на r/StableDiffusion с тремя претензиями. Сел и прогнал ablation: 5 вариантов пайплайна × 5 категорий × 3 сида = 75 картинок. Нашёл дыры в собственном пайплайне — в том числе кириллицу прямо в выходе LoRA (training-set leakage) и полный коллапс LoRA при scale=2.0. Текущий sandwich оказался патчем поверх плохо обученной LoRA, а не правильным решением. В статье — все картинки, цифры, и почему оба «правильных» совета критика на текущей модели не сработали. Плюс план переобучения на 1500-датасете.

    habr.com/ru/articles/1031338/

    #FLUX #LoRA #StableDiffusion #ablation #FastAPI #SQLite #pinock #matchbox #vast

  12. FastAPI + Docker с нуля: деплоим свой первый API без боли и слез

    Каждый начинающий бэкендер рано или поздно сталкивается с классической болью: «Ну не знаю, на моем компе всё работало, а на сервере почему-то падает!». Решение давно известно — контейнеризация. Но что делать, если от слова Docker бросает в дрожь, а официальные туториалы написаны сухим академическим языком и требуют знания Linux-администрирования? Мы с нуля напишем простейшее API на современном FastAPI, разберемся, чем «образ» отличается от «контейнера», упакуем наш код в изолированную коробочку и научимся запускать всё это одной кнопкой через Docker Compose. Максимально просто, «на пальцах» и без лишней воды. Заходи, если хочешь деплоить без боли и слез!

    habr.com/ru/articles/1031190/

    #python #fastapi #docker #dockercompose #dockerfile #бэкенд #для_начинающих #микросервисы #api #разработка_с_нуля

  13. Дуров стену не вернул, поэтому я написал свою – агрегатор Telegram-каналов на Telethon

    «Дуров, верни стену» – мем старый, но точный. ВКонтакте начала 2010-х была, при всех своих недостатках, одним из последних мест в рунете с по-настоящему живой лентой. Не алгоритмической, не персонализированной до тошноты – просто всё подряд от всех, на кого подписан. Новости соседствовали с мемами, мемы – с чьей-то репостнутой статьёй про квантовую физику, которую ты никогда не дочитаешь, но пролистаешь с удовольствием. Была случайность, была живость, был сам факт того, что ты не знаешь, что увидишь следующим. Потом ВК превратился в то, во что превращается каждая платформа – в алгоритмический прямоугольник, оптимизированный под время на сайте. Мы переехали в Telegram. Telegram честнее: хронологический порядок, никакого умного ранжирования, читаешь то, на что подписался. Но одна вещь так и не появилась – единая лента. В ВК у тебя была стена, куда всё стекалось само. В Telegram двадцать каналов – это двадцать отдельных мест, которые надо обходить руками каждый день. Папки? Пробовал. Папки – это шкаф. Они раскладывают каналы по полочкам, но за каждой полкой всё равно надо открывать каждый ящик отдельно. Единого потока нет. Ботов-агрегаторов в маркете штук пять – все сломаны по одной и той же причине: Bot API физически не видит каналы, в которых бот не является администратором. То есть публичный новостной канал с миллионом подписчиков – недоступен. Бот читает только то, куда его добавили руками, а никто не добавляет чужих ботов в админы своих каналов. Логично, но бесполезно. В какой-то момент я окончательно устал и собрал своё.

    habr.com/ru/articles/1030702/

    #telegram #telethon #mtproto #rss #selfhosted #fastapi #nextjs #open_source #агрегатор

  14. Tilda + СБИС Presto: пишем интеграцию на Python, когда готового решения не существует

    Клиент пришёл с простой задачей: заказы с сайта на Tilda должны автоматически попадать в СБИС Presto. Казалось бы, популярные инструменты — должно быть готовое решение. Его не оказалось. Написали свой сервис месяц в продакшене, всё работает. Рассказываем как — с кодом, граблями и объяснением неочевидных мест в документации СБИС. Стек: Python, FastAPI, Pydantic, httpx, cachetools.

    habr.com/ru/articles/1030324/

    #python #fastapi #сбис #tilda #webhook #интеграция #pydantic #httpx #presto

  15. Tilda + СБИС Presto: пишем интеграцию на Python, когда готового решения не существует

    Клиент пришёл с простой задачей: заказы с сайта на Tilda должны автоматически попадать в СБИС Presto. Казалось бы, популярные инструменты — должно быть готовое решение. Его не оказалось. Написали свой сервис месяц в продакшене, всё работает. Рассказываем как — с кодом, граблями и объяснением неочевидных мест в документации СБИС. Стек: Python, FastAPI, Pydantic, httpx, cachetools.

    habr.com/ru/articles/1030324/

    #python #fastapi #сбис #tilda #webhook #интеграция #pydantic #httpx #presto

  16. Tilda + СБИС Presto: пишем интеграцию на Python, когда готового решения не существует

    Клиент пришёл с простой задачей: заказы с сайта на Tilda должны автоматически попадать в СБИС Presto. Казалось бы, популярные инструменты — должно быть готовое решение. Его не оказалось. Написали свой сервис месяц в продакшене, всё работает. Рассказываем как — с кодом, граблями и объяснением неочевидных мест в документации СБИС. Стек: Python, FastAPI, Pydantic, httpx, cachetools.

    habr.com/ru/articles/1030324/

    #python #fastapi #сбис #tilda #webhook #интеграция #pydantic #httpx #presto

  17. Tilda + СБИС Presto: пишем интеграцию на Python, когда готового решения не существует

    Клиент пришёл с простой задачей: заказы с сайта на Tilda должны автоматически попадать в СБИС Presto. Казалось бы, популярные инструменты — должно быть готовое решение. Его не оказалось. Написали свой сервис месяц в продакшене, всё работает. Рассказываем как — с кодом, граблями и объяснением неочевидных мест в документации СБИС. Стек: Python, FastAPI, Pydantic, httpx, cachetools.

    habr.com/ru/articles/1030324/

    #python #fastapi #сбис #tilda #webhook #интеграция #pydantic #httpx #presto

  18. At-least-once. Это не баг провайдера. Это ваша архитектурная проблема

    Думал, зайду в крипту и буду просто дёргать API блокчейна. Не вышло. Захожу в проект. Стек: FastAPI, PostgreSQL, Redis как Celery broker, Celery workers, Docker, Web3. Стартап на хайпе, деньги реальные, архитектура собрана на коленке. Смотрю на архитектуру платёжного процессинга и первая мысль: ребята, вы серьёзно? Финансовые операции с реальными деньгами, без idempotency вообще, Redis как брокер без persistence, Web3.py синхронные вызовы внутри Celery тасков. Разговор был короткий: задача такая, чини что есть. Сроки горели.

    habr.com/ru/articles/1028708/

    #idempotency #PostgreSQL #Celery #FastAPI #Redis #atleastonce #webhook #distributed_systems #финтех

  19. At-least-once. Это не баг провайдера. Это ваша архитектурная проблема

    Думал, зайду в крипту и буду просто дёргать API блокчейна. Не вышло. Захожу в проект. Стек: FastAPI, PostgreSQL, Redis как Celery broker, Celery workers, Docker, Web3. Стартап на хайпе, деньги реальные, архитектура собрана на коленке. Смотрю на архитектуру платёжного процессинга и первая мысль: ребята, вы серьёзно? Финансовые операции с реальными деньгами, без idempotency вообще, Redis как брокер без persistence, Web3.py синхронные вызовы внутри Celery тасков. Разговор был короткий: задача такая, чини что есть. Сроки горели.

    habr.com/ru/articles/1028708/

    #idempotency #PostgreSQL #Celery #FastAPI #Redis #atleastonce #webhook #distributed_systems #финтех

  20. At-least-once. Это не баг провайдера. Это ваша архитектурная проблема

    Думал, зайду в крипту и буду просто дёргать API блокчейна. Не вышло. Захожу в проект. Стек: FastAPI, PostgreSQL, Redis как Celery broker, Celery workers, Docker, Web3. Стартап на хайпе, деньги реальные, архитектура собрана на коленке. Смотрю на архитектуру платёжного процессинга и первая мысль: ребята, вы серьёзно? Финансовые операции с реальными деньгами, без idempotency вообще, Redis как брокер без persistence, Web3.py синхронные вызовы внутри Celery тасков. Разговор был короткий: задача такая, чини что есть. Сроки горели.

    habr.com/ru/articles/1028708/

    #idempotency #PostgreSQL #Celery #FastAPI #Redis #atleastonce #webhook #distributed_systems #финтех

  21. At-least-once. Это не баг провайдера. Это ваша архитектурная проблема

    Думал, зайду в крипту и буду просто дёргать API блокчейна. Не вышло. Захожу в проект. Стек: FastAPI, PostgreSQL, Redis как Celery broker, Celery workers, Docker, Web3. Стартап на хайпе, деньги реальные, архитектура собрана на коленке. Смотрю на архитектуру платёжного процессинга и первая мысль: ребята, вы серьёзно? Финансовые операции с реальными деньгами, без idempotency вообще, Redis как брокер без persistence, Web3.py синхронные вызовы внутри Celery тасков. Разговор был короткий: задача такая, чини что есть. Сроки горели.

    habr.com/ru/articles/1028708/

    #idempotency #PostgreSQL #Celery #FastAPI #Redis #atleastonce #webhook #distributed_systems #финтех

  22. dear #python folx

    does anyone have experience writing #django apps using async views and async ORM operations? doesn't have to be production stuff, can be a personal project.

    any take-aways, lessons learned you'd like to share? is using #async in #django 6 feasible now? or are we still better off maybe using #fastAPI?

    if someone knows of a good discussion on this written by humans, ideally from lived experience (not platitudes or docs), i'd also love a link!

  23. Как подключить Langfuse к LLM через JWT?

    Langfuse, помимо трассирования запросов, удобно использовать для prompt management и LLM-as-a-judge. Но в закрытой корпоративной среде он упирается в простую вещь: LF работает со статическим API key, а ваш LLM gateway — нет. То есть gateway требует короткоживущий JWT, а Langfuse не умеет его получать. И в этот момент интеграция ломается. Мы столкнулись именно с такой ситуацией. Модели self-hosted, OpenAI подобный API, но для доступа к нему на каждый запрос нужен JWT, который выдаётся централизованным провайдером. Langfuse в LLM Connection умеет передать API key и заголовки, но не сможет сам сходить в auth-сервис, получить временный токен и подставить его в запрос. В этой статье я рассказываю о своем опыте решения этой проблемы на продакшен уровне.

    habr.com/ru/articles/1025168/

    #llm #litellm #fastapi #proxy #proxyserver #langfuse

  24. Как ИИ написал локальный редактор IPTV-плейлистов на FastAPI + React 19

    Заголовок : Как я написал локальный редактор IPTV-плейлистов на FastAPI + React 19 (и почему всё состояние хранится по именам) Хабы : React , FastAPI , TypeScript , Tailwind CSS , Open source , IPTV , Python Теги : m3u , m3u8 , iptv , fastapi , react , hls , epg , drag-and-drop , self-hosted

    habr.com/ru/articles/1024902/

    #m3u #m3u8 #iptv #fastapi #react #hls #epg #draganddrop #selfhosted

  25. Как ИИ написал локальный редактор IPTV-плейлистов на FastAPI + React 19

    Заголовок : Как я написал локальный редактор IPTV-плейлистов на FastAPI + React 19 (и почему всё состояние хранится по именам) Хабы : React , FastAPI , TypeScript , Tailwind CSS , Open source , IPTV , Python Теги : m3u , m3u8 , iptv , fastapi , react , hls , epg , drag-and-drop , self-hosted

    habr.com/ru/articles/1024902/

    #m3u #m3u8 #iptv #fastapi #react #hls #epg #draganddrop #selfhosted

  26. Как ИИ написал локальный редактор IPTV-плейлистов на FastAPI + React 19

    Заголовок : Как я написал локальный редактор IPTV-плейлистов на FastAPI + React 19 (и почему всё состояние хранится по именам) Хабы : React , FastAPI , TypeScript , Tailwind CSS , Open source , IPTV , Python Теги : m3u , m3u8 , iptv , fastapi , react , hls , epg , drag-and-drop , self-hosted

    habr.com/ru/articles/1024902/

    #m3u #m3u8 #iptv #fastapi #react #hls #epg #draganddrop #selfhosted

  27. Как ИИ написал локальный редактор IPTV-плейлистов на FastAPI + React 19

    Заголовок : Как я написал локальный редактор IPTV-плейлистов на FastAPI + React 19 (и почему всё состояние хранится по именам) Хабы : React , FastAPI , TypeScript , Tailwind CSS , Open source , IPTV , Python Теги : m3u , m3u8 , iptv , fastapi , react , hls , epg , drag-and-drop , self-hosted

    habr.com/ru/articles/1024902/

    #m3u #m3u8 #iptv #fastapi #react #hls #epg #draganddrop #selfhosted

  28. 🐳 True microservices architecture: UI (#React + #Vite, port 3737), API (#FastAPI, port 8181), MCP server (port 8051), Agents
    (#PydanticAI, port 8052) — all running in #Docker
    🗄️ Powered by #Supabase + #PostgreSQL + #PGVector for vector storage and semantic search

    ⚙️ Fully configurable ports & hostname via .env — deploy locally or on a remote server with zero friction

    🛠️ Dev-friendly: hybrid mode

  29. Как я автоматизировал управление информацией и оптимизировал рабочие процессы. История Sapiens OS

    Если вы ведете несколько проектов одновременно, вы знаете проблему управления информацией. Мысль пришла в голову — записал куда-то. Через месяц пытаешься вспомнить: где это было? Сохранил в папке где-то на компьютере? В заметках телефона? В рабочем чате или личных сообщениях? Если не нашел — идея ушла. Или осталась, но найти её — отдельный квест и потеря времени, которое хотелось бы потратить с пользой, а не на поиски. Со мной так происходило постоянно. Статьи и доклады по учёбе, отчёты по работе, технические заметки по разрабатываемому ПО, ссылки на полезные ресурсы, голосовые идеи по дороге на работу, полезные фото — всё в разных местах, без структуры, без связей. Изначально я пытался найти для себя идеальный инструмент. Notion, Obsidian, Evernote — ни один не решал мою задачу в комплексе: быстро сохранить мысль, не потерять её, а потом легко найти и связать с другими. Поэтому я написал свою систему. Статья — не «продажа курса» и не «уникальный продукт». Это описание того, как я решал свои задачи, какие решения принимал и что из этого вышло. Если вы тоже теряете время при поиске нужной информации — возможно, найдёте здесь что-то полезное.

    habr.com/ru/articles/1022042/

    #Python #JavaScript #Вебразработка #Личный_опыт #FastAPI #SQLite #DevOps #Управление_знаниями #Notion #VK

  30. Как я выбирал стек для SaaS-мониторинга сайтов

    Как в одиночку собрать полноценный сервис мониторинга с проверками из 10 точек мира, алертами в Telegram/Slack и собственным агентом? Делюсь личным опытом выбора стека: почему FastAPI выиграл у Django, как TimescaleDB справляется с миллионами строк логов и зачем писать агент на Go, если основной код на Python. Только практика, архитектурные решения и честный расчет стоимости инфраструктуры в €11/мес. Изучить стек

    habr.com/ru/articles/1021000/

    #FastAPI #Vuejs #TimescaleDB #SaaS #мониторинг_сайтов #Celery #Go #архитектура #стартап #разработка

  31. Как я построил автоматический сервис защиты данных: FastAPI + Marzban + Docker

    Задача: человек регистрируется, оплачивает, получает ключ на почту и сразу подключается. Без ручной работы с моей стороны. Под капотом — FastAPI, Marzban, PostgreSQL, React, ЮKassa, Resend. Расскажу про архитектуру, грабли и неочевидные решения.

    habr.com/ru/articles/1018760/

    #fastapi #python #docker #marzban #nginx #xray #vpn #amneziavpn #vless #selfhosted

  32. Authorization без middleware: как я завернул Casbin в декораторы для FastAPI

    Когда в FastAPI-проекте появляется нормальная авторизация, код быстро начинает расползаться в стороны. Сначала все выглядит терпимо: один Depends(get_current_user) , один Depends(get_enforcer) , одна ручная проверка. Потом роутов становится больше, правил доступа становится больше, и внезапно половина endpoint’ов начинает содержать не бизнес-логику, а обвязку вокруг нее. В какой-то момент меня перестал устраивать и классический подход через dependency injection в каждом роуте, и вариант с middleware. Хотелось, чтобы правило доступа было видно прямо рядом с маршрутом, но при этом не приходилось таскать авторизацию в сигнатуры всех функций. В итоге я собрал casbin-fastapi-decorator — тонкий слой над Casbin для FastAPI, который позволяет описывать authorization через декораторы. Идея простая:

    habr.com/ru/articles/1018670/

    #FastAPI #Python #Casbin #авторизация #rbac #abac #декораторы #api #open_source

  33. JWT авторизация в FastAPI: от теории к практике

    Представьте себе, что вы разработчик, и перед вами стоит задача: сделать так, чтобы после входа пользователь мог получать свои личные данные, не вводя пароль при каждом клике. Звучит как классическая задача аутентификации, правда? Традиционный подход — сессии. Вы логинитесь, сервер создаёт сессию, запоминает ваш ID у себя в базе данных, а вам выдаёт куку с ID этой сессии. Всё работает, пока вы на одном сервере. А если у вас их два? Или десять? Куда девать сессии? Начинаются проблемы с синхронизацией, Redis, общими хранилищами… Альтернатива — JWT (JSON Web Token). В этой статье мы с вами:

    habr.com/ru/articles/1017246/

    #FastAPI #JWT #авторизация #аутентификация #Python #токены #API #бэкенд #JSON_Web_Token #OAuth2

  34. JWT авторизация в FastAPI: от теории к практике

    Представьте себе, что вы разработчик, и перед вами стоит задача: сделать так, чтобы после входа пользователь мог получать свои личные данные, не вводя пароль при каждом клике. Звучит как классическая задача аутентификации, правда? Традиционный подход — сессии. Вы логинитесь, сервер создаёт сессию, запоминает ваш ID у себя в базе данных, а вам выдаёт куку с ID этой сессии. Всё работает, пока вы на одном сервере. А если у вас их два? Или десять? Куда девать сессии? Начинаются проблемы с синхронизацией, Redis, общими хранилищами… Альтернатива — JWT (JSON Web Token). В этой статье мы с вами:

    habr.com/ru/articles/1017246/

    #FastAPI #JWT #авторизация #аутентификация #Python #токены #API #бэкенд #JSON_Web_Token #OAuth2

  35. JWT авторизация в FastAPI: от теории к практике

    Представьте себе, что вы разработчик, и перед вами стоит задача: сделать так, чтобы после входа пользователь мог получать свои личные данные, не вводя пароль при каждом клике. Звучит как классическая задача аутентификации, правда? Традиционный подход — сессии. Вы логинитесь, сервер создаёт сессию, запоминает ваш ID у себя в базе данных, а вам выдаёт куку с ID этой сессии. Всё работает, пока вы на одном сервере. А если у вас их два? Или десять? Куда девать сессии? Начинаются проблемы с синхронизацией, Redis, общими хранилищами… Альтернатива — JWT (JSON Web Token). В этой статье мы с вами:

    habr.com/ru/articles/1017246/

    #FastAPI #JWT #авторизация #аутентификация #Python #токены #API #бэкенд #JSON_Web_Token #OAuth2

  36. JWT авторизация в FastAPI: от теории к практике

    Представьте себе, что вы разработчик, и перед вами стоит задача: сделать так, чтобы после входа пользователь мог получать свои личные данные, не вводя пароль при каждом клике. Звучит как классическая задача аутентификации, правда? Традиционный подход — сессии. Вы логинитесь, сервер создаёт сессию, запоминает ваш ID у себя в базе данных, а вам выдаёт куку с ID этой сессии. Всё работает, пока вы на одном сервере. А если у вас их два? Или десять? Куда девать сессии? Начинаются проблемы с синхронизацией, Redis, общими хранилищами… Альтернатива — JWT (JSON Web Token). В этой статье мы с вами:

    habr.com/ru/articles/1017246/

    #FastAPI #JWT #авторизация #аутентификация #Python #токены #API #бэкенд #JSON_Web_Token #OAuth2

  37. Мы сделали лучший REST фреймворк для Django

    Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django. Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса. Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

    habr.com/ru/articles/1017036/

    #python #django #asyncio #fastapi #sse

  38. Мы сделали лучший REST фреймворк для Django

    Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django. Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса. Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

    habr.com/ru/articles/1017036/

    #python #django #asyncio #fastapi #sse

  39. Мы сделали лучший REST фреймворк для Django

    Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django. Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса. Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

    habr.com/ru/articles/1017036/

    #python #django #asyncio #fastapi #sse

  40. Мы сделали лучший REST фреймворк для Django

    Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django. Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса. Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

    habr.com/ru/articles/1017036/

    #python #django #asyncio #fastapi #sse

  41. It’s surprisingly fast to mechanically convert my REST API to gRPC as the logic is already done and only a thin wrapper needs to be done for the app. Slowest part is getting the Rust server compiled. :)

    #rust #grpc #fastapi #ios #etc

  42. SSE is finally a first-class citizen in FastAPI: fastapi.tiangolo.com/tutorial/
    Hopefully this gives SSE the same boost FastAPI once gave dependency injection, because it deserves a lot more attention.
    #fastapi #sse #python

  43. Антропоморфизм или две злобных вишенки

    Смотрю на вас как в зеркало... но в ответ не тронь, мы не для таких как ты, правда? Да мы не для таких, мы были созданы для настоящих мужиков. Когда одухотворяют неживые вещи для общения с ними это Антропоморфизм, а как называется когда человек с головой другого человека не разговаривает, но одушевляет части его тела, для общения с ними? Хм, ну да ладно от вымысла к реальности, а реальность у нас - 5ая статья в серии Шампур-Скребок выходит в публичное пространство. Route Load bot (телеграмм) для укладки груза.

    habr.com/ru/articles/1004266/

    #Python #FastAPI #telegramботы #telegramбот #Математика #Алгоритмы #3D_Bin_Packing #Docker_Docker_Compose #Redis_PostgreSQL #Webhook

  44. Антропоморфизм или две злобных вишенки

    Смотрю на вас как в зеркало... но в ответ не тронь, мы не для таких как ты, правда? Да мы не для таких, мы были созданы для настоящих мужиков. Когда одухотворяют неживые вещи для общения с ними это Антропоморфизм, а как называется когда человек с головой другого человека не разговаривает, но одушевляет части его тела, для общения с ними? Хм, ну да ладно от вымысла к реальности, а реальность у нас - 5ая статья в серии Шампур-Скребок выходит в публичное пространство. Route Load bot (телеграмм) для укладки груза.

    habr.com/ru/articles/1004266/

    #Python #FastAPI #telegramботы #telegramбот #Математика #Алгоритмы #3D_Bin_Packing #Docker_Docker_Compose #Redis_PostgreSQL #Webhook

  45. Антропоморфизм или две злобных вишенки

    Смотрю на вас как в зеркало... но в ответ не тронь, мы не для таких как ты, правда? Да мы не для таких, мы были созданы для настоящих мужиков. Когда одухотворяют неживые вещи для общения с ними это Антропоморфизм, а как называется когда человек с головой другого человека не разговаривает, но одушевляет части его тела, для общения с ними? Хм, ну да ладно от вымысла к реальности, а реальность у нас - 5ая статья в серии Шампур-Скребок выходит в публичное пространство. Route Load bot (телеграмм) для укладки груза.

    habr.com/ru/articles/1004266/

    #Python #FastAPI #telegramботы #telegramбот #Математика #Алгоритмы #3D_Bin_Packing #Docker_Docker_Compose #Redis_PostgreSQL #Webhook

  46. Антропоморфизм или две злобных вишенки

    Смотрю на вас как в зеркало... но в ответ не тронь, мы не для таких как ты, правда? Да мы не для таких, мы были созданы для настоящих мужиков. Когда одухотворяют неживые вещи для общения с ними это Антропоморфизм, а как называется когда человек с головой другого человека не разговаривает, но одушевляет части его тела, для общения с ними? Хм, ну да ладно от вымысла к реальности, а реальность у нас - 5ая статья в серии Шампур-Скребок выходит в публичное пространство. Route Load bot (телеграмм) для укладки груза.

    habr.com/ru/articles/1004266/

    #Python #FastAPI #telegramботы #telegramбот #Математика #Алгоритмы #3D_Bin_Packing #Docker_Docker_Compose #Redis_PostgreSQL #Webhook

  47. FastAPI на AMD FX-8320: оптимизация P99 latency в условиях ограниченных ресурсов (HDD, DDR3)

    В 2026 году асинхронный Python уже никого не удивляет. Мы привыкли к автоскейлингу в облаках, но что делать, если ваш бюджет на инфраструктуру равен нулю, а в распоряжении есть только «печка» из 2012 года? Рассказываю про личный опыт выжимания максимума из FastAPI на AMD FX-8320: от тюнинга ядра Linux и PostgreSQL до миграции на Ed25519 и использования Rust-сервера Granian.

    habr.com/ru/articles/1002312/

    #FastAPI #Granian #AMD_FX8320 #PostgreSQL_18 #Angie #Valkey #P99 #Linux_Tuning

  48. 🔍 / #software / #tutorial / #python

    Uploading Files Using FastAPI: A Complete Guide to Secure File Handling

    #FastAPI has changed how developers build web APIs. It's fast, easy to use, and handles complex tasks like file uploads without the usual headaches. File uploading is crucial for modern web apps, but developers often mess it up. They create security holes or build systems that frustrate users.

    🐱🔗 laravista.altervista.org/CatLi

    #catlink #softwaretutorial

  49. [Перевод] Python 3.14 без GIL: что это значит для веб-разработки

    Команда Python for Devs подготовила перевод статьи о том, как "free-threaded" Python меняет правила игры для веб-сервисов. Автор сравнивает Python 3.14 с GIL и без него на реальных ASGI и WSGI приложениях — и приходит к неожиданному выводу: несмотря на локальные просадки в производительности, "free-threaded" Python уже сейчас может упростить масштабирование и снизить накладные расходы.

    habr.com/ru/articles/967244/

    #Python #GIL #freethreading #вебсервисы #ASGI #WSGI #производительность #конкурентность #Granian #FastAPI

  50. Не обижайте Django

    Чем популярнее становится FastAPI, тем сильнее критикуют Django. И не просто критикуют. Брезгуют? Пренебрегают? Всего понемножку. Всё чаще слышу, что Django — пережиток прошлого. Любой проект на Django — устаревший мусор. Любой «джанговод» — просто не знает, что тоже устарел. Объективно ли это? Нет, не объективно. Если отвёртка плохо забивает гвозди, это не значит, что отвёртки устарели — просто это не их задача.

    habr.com/ru/articles/959114/

    #python #fastapi #django #django_rest_framework #pythonразработка