Добро пожаловать¶

ncorn — готовый к продакшену ASGI веб-сервер для FastAPI приложений.
Документация: https://ncorn.ndugram.dev
Исходный код: https://github.com/ndugram/ncorn
ncorn — это реализация ASGI веб-сервера для Python, разработанная специально для FastAPI приложений.
До недавнего времени в Python не было минимального низкоуровневого интерфейса сервер/приложение для асинхронных фреймворков. Спецификация ASGI заполняет этот пробел, что позволяет создавать общий набор инструментов для всех асинхронных фреймворков.
ncorn построен с упором на производительность и готовность к продакшену, с встроенными мерами безопасности и поддержкой SSL/TLS.
Возможности¶
- Высокая производительность — построен на asyncio
- ASGI совместимость — полная поддержка ASGI интерфейса для FastAPI
- Готов к продакшену — rate limiting, валидация запросов, защита от slowloris
- SSL/TLS — нативная поддержка HTTPS без reverse proxy
- Несколько воркеров — поддержка нескольких процессов
- Авто-перезагрузка — режим разработки с отслеживанием файлов
- Красивое логирование — красивый вывод в стиле uvicorn
- Безопасность — валидация заголовков, ограничения размера тела, IP rate limiting
Быстрый старт¶
ncorn доступен на PyPI, установка проста:
pip install ncorn
Создадим простое FastAPI приложение:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Привет от ncorn!"}
Запустим его с ncorn:
ncorn main:app
Запуск с HTTPS¶
ncorn имеет встроенную поддержку SSL/TLS — не нужен внешний reverse proxy:
ncorn main:app --ssl-keyfile certs/key.pem --ssl-certfile certs/cert.pem
Сервер запустится на https://127.0.0.1:8000
Требования¶
- Python 3.11+
- httptools
- rich
- annotated-doc