from lihil import Lihil, Route, Streamfrom openai import OpenAIfrom openai.types.chat import ChatCompletionChunk as Chunkfrom openai.types.chat import ChatCompletionUserMessageParam as MessageIngpt = Route("/gpt", deps=[OpenAI])def message_encoder(chunk: Chunk) -> bytes:if not chunk.choices:return b""return chunk.choices[0].delta.content.encode() or b""@gpt.sub("/messages").post(encoder=message_encoder)async def add_new_message(client: OpenAPI, question: MessageIn, model: str) -> Stream[Chunk]:async for chunk in client.responses.create(messages=[question], model=model, stream=True):yield chunk
50%-100%
Быстрее других ASGI фреймворков, больше возможностей для крупных приложений. бенчмарки
100%
Покрыт тестами и строго типизирован
> 45K
RPS (на поток CPU)
Get Started in Seconds
Lihil is designed for simplicity without sacrificing power. Install with pip and start building your next Python web application.
Создайте REST API за минуты
from lihil import Lihil, HTTPException, Struct, Route, Param, Annotated, Emptyclass TodoItem(Struct):id: inttitle: strcompleted: bool = Falsetodo = Route("/todos", deps=[TodoRepo])@todo.getasync def get_todos(todo_repo: TodoRepo, n: Annotated[int, Param(lt=100)]):return await todo_repo.list_todos()@todo.postasync def create_todo(item: TodoItem, todo_repo: TodoRepo) -> Annotated[Empty, 201]:await todo_repo.add(item)if __name__ == "__main__":lhl = Lihil(todo)lhl.run(__file__)
Почему выбирают lihil?
Чистый, мощный Python веб-фреймворк, созданный для современных приложений.
Автоматический парсинг и валидация данных запроса из пути, параметров запроса, заголовков и тела с помощью msgspec — в 12 раз быстрее и в 25 раз более эффективно по памяти, чем Pydantic.
Внедрение зависимостей на основе аннотаций типов. Поддерживает фабрики, асинхронность, области видимости и синглтоны — всё молниеносно быстро.
Обработка WebSocket-соединений с чистыми, типобезопасными API. Легко тестируется с помощью встроенного WebSocket тест-клиента.
Автогенерация OpenAPI документации и детальных описаний проблем. Пользовательские исключения превращаются в понятные API-ответы.
Встроенная поддержка JWT и OAuth2. Объекты аутентификации типобезопасны и сериализуемы.
Встроенная система событий для публикации и обработки событий, как внутрипроцессных, так и межпроцессных, эффективно.
Встроенный тест-клиент для эндпоинтов, маршрутов и middleware — никакой дополнительной настройки не требуется.
Оптимизирован для минимального использования памяти. Накладные расходы сборщика мусора снижены, что делает сервисы более стабильными под нагрузкой.
Создан с учётом ИИ. Встроенная поддержка SSE, MCP и удалённых обработчиков появится в ближайшее время.
Join the Community
Lihil is backed by a growing community of Python developers. Get support, contribute, and help shape the future of fast Python web development.
Готовы создать что-то удивительное?
Присоединяйтесь к растущему сообществу разработчиков, использующих Lihil для создания быстрых, надёжных и масштабируемых веб-приложений.
Начать сейчас