프로젝트 소개

Starlette는 Python으로 비동기 웹 애플리케이션을 구축하기 위해 설계된 경량 ASGI(Asynchronous Server Gateway Interface) 프레임워크입니다. HTTP 라우팅, WebSocket 처리, 백그라운드 작업 실행, 시작/종료 이벤트, CORS, GZip 압축, 정적 파일 제공, 스트리밍 응답, 세션/쿠키 관리 등 핵심 기능을 제공하며 완전한 테스트 커버리지를 갖추고 있습니다. 코드베이스는 전체적으로 타입 어노테이션이 되어 있으며 asyncio와 trio 백엔드를 모두 지원합니다. Starlette는 standalone 프레임워크로 사용되거나 도구 모음처럼 활용될 수 있으며, 구성 요소는 모듈식이라 독립적으로 다른 ASGI 호환 프로젝트에 통합할 수 있습니다. 하드 의존성으로는 'anyio'만 필요하며, 테스트 클라이언트, Jinja2 템플릿, OpenTelemetry 미들웨어, 폼 파싱, 세션 지원, 스키마 생성과 같은 선택적 기능은 'starlette[full]'을 통해 추가로 설치할 수 있습니다. 성능 벤치마크는 다른 프레임워크들과 경쟁력 있음을 보여줍니다. 배포 시 Uvicorn 같은 ASGI 서버와 함께 사용됩니다. BSD 라이선스를 따르며, 재사용 가능한 미들웨어와 ASGI 생태계 전반에서 마운트 가능한 애플리케이션을 장려하는 깔끔한 API 디자인을 강조합니다.