Articles

Ravyn - фреймворк, который берёт лучшее от FastAPI, Django и NestJS

Ravyn - фреймворк, который берёт лучшее от FastAPI, Django и NestJS
Михаил Омельченко
Автор
Михаил Омельченко
Опубликовано 14.07.2026
0,0
Views 2

Если вы пишете API на Python, выбор обычно стоит между FastAPI, Django (DRF) и, реже, Litestar. У каждого свой набор компромиссов: FastAPI даёт скорость разработки и OpenAPI из коробки, но держит вас на декораторах и не даёт готовой системы permissions. Django даёт зрелую экосистему и permissions, но тяжелее и менее async-native. Ravyn - попытка собрать то, что обычно берут по частям из разных фреймворков, в одном месте.

Откуда взялся Ravyn

Ravyn изначально был написан поверх Starlette, как и FastAPI. В какой-то момент авторы (Tiago Silva и команда) написали собственный ASGI-слой - Lilya, и Ravyn переехал на него.

Так получилось два отдельных проекта:

  1. Lilya - ASGI toolkit. Почти без жёстких зависимостей, полностью типизирован, работает и с asyncio, и с trio. Ключевая идея: каждый компонент (middleware, permissions, роутер) - это самостоятельное ASGI-приложение, которое можно подключить в другой фреймворк, в том числе в FastAPI

  2. Ravyn - фреймворк поверх Lilya и Pydantic. Berёт дизайн API и автогенерацию OpenAPI близко к FastAPI, систему permissions и settings ближе к Django, контроллеры и dependency injection в духе NestJS

Лицензия у обоих - BSD-3-Clause. Ravyn требует Python 3.10+.

Что внутри

Из того, что отличает Ravyn от типичного "ещё одного FastAPI":

  1. permissions как в Django - не нужно городить свою систему прав поверх декораторов, она встроена

  2. выбор стиля - можно писать функциями с декораторами (быстро набросать) или ООП-контроллерами (когда проект вырос и роутер-файл на 40 эндпоинтов стал нечитаемым) - в одном проекте, по модулям

  3. нативная поддержка Edgy (ORM для реляционных БД) и Mongoz (ODM для MongoDB) - не нужно отдельно собирать связку с ORM

  4. встроенный scheduler, dependency injection, middleware - без сборки из сторонних пакетов

  5. автогенерация OpenAPI/Swagger, встроенный тестовый клиент

  6. scaffolding для старта проекта

У Lilya отдельно стоит отметить инструмент миграции с FastAPI (https://lilya-converter.dymmond.com/) - если сейчас на FastAPI и хочется попробовать перейти на ASGI-слой Lilya, не переписывая всё руками.

Код

Минимальный пример на Lilya:

from lilya.apps import Lilya
from lilya.requests import Request
from lilya.responses import Ok
from lilya.routing import Path


async def welcome():
    return Ok({"message": "Welcome to Lilya"})


async def user(user: str):
    return Ok({"message": f"Welcome to Lilya, {user}"})


async def user_in_request(request: Request):
    user = request.path_params["user"]
    return Ok({"message": f"Welcome to Lilya, {user}"})


app = Lilya(
    routes=[
        Path("/{user}", user),
        Path("/in-request/{user}", user_in_request),
        Path("/", welcome),
    ]
)

И на Ravyn:

from ravyn import Ravyn, get, JSONResponse

app = Ravyn()

@app.get("/")
def welcome() -> JSONResponse:
    return JSONResponse({"message": "Welcome to Ravyn!"})

@app.get("/hello/{name}")
def greet(name: str) -> JSONResponse:
    return JSONResponse({"message": f"Hello, {name}!"})

Синтаксис может измениться в новых версиях.

Кто уже использует

Несмотря на молодость проекта, Ravyn и Lilya уже используются в проде в местах с высокими требованиями к надёжности: Bank of England, несколько стартапов в Лондоне, SCOR (четвёртая по величине перестраховочная компания в мире).

О масштабе

Не буду делать вид, что это готовый конкурент FastAPI. На момент публикации (данные GitHub, июль 2026):

  1. FastAPI - 100 469 звёзд
  2. Django - 88 205 звёзд
  3. Starlette - 12 474 звезды
  4. Litestar - 8331 звезда
  5. Ravyn - 389 звёзд, 21 форк, 16 контрибьюторов
  6. Lilya - 68 звёзд, 5 форков, 6 контрибьюторов

Разрыв большой, и это честная точка отсчёта, а не "фреймворк, который все уже используют". Оба проекта активно поддерживаются (коммиты каждый день на момент написания), но community маленькое. Если вам важна экосистема готовых пакетов и Stack Overflow-ответов на любой вопрос - пока это к FastAPI или Django. Если интересно попробовать другой набор архитектурных решений и не против того, что что-то придётся решать самостоятельно - вот тут Ravyn и Lilya могут быть интересны.

Итог

Ravyn не пытается быть FastAPI-убийцей. Это попытка собрать permissions от Django, гибкость контроллеров от NestJS и API-эргономику от FastAPI в одном месте, поверх собственного лёгкого ASGI-слоя Lilya. Проект молодой, но активно развивается.

Установка:

pip install ravyn
pip install lilya

Документация: lilya.dev, ravyn.dev. Репозитории: Lilya, Ravyn. Комьюнити в Discord

Если решите попробовать - интересно услышать, чего не хватает по сравнению с тем, чем пользуетесь сейчас.

Авторизуйтесь, чтобы оставить комментарий.

Комментариев: 0

Нет комментариев.

Тут может быть ваша реклама

Пишите info@aisferaic.ru

Похожие статьи