[{"data":1,"prerenderedAt":4075},["ShallowReactive",2],{"index":3,"starters":3624,"templates":3683,"plugins":3712,"sponsors":4039,"index-hero-tab-0":105,"index-hero-tab-1":684,"index-hero-tab-2":1641,"index-hero-tab-3":2727,"index-plugins-title":4063,"versions":4072},{"id":4,"deploy":5,"development":6,"extension":34,"features":35,"hero":97,"logos":5,"meta":3575,"plugins":3576,"sponsors":3583,"stats":3591,"stem":1233,"templates":3601,"__hash__":3623},"index\u002Findex.yml",null,{"title":7,"description":8,"links":9,"features":16,"code":33},"Focused on development experience","Litestar's opinionated design and modern architecture empower developers to build robust APIs quickly, with batteries included and powerful customization options.",[10],{"label":11,"to":12,"variant":13,"color":14,"trailingIcon":15},"Explore documentation","https:\u002F\u002Fdocs.litestar.dev\u002F","outline","neutral","i-lucide-arrow-right",[17,21,25,29],{"title":18,"description":19,"icon":20},"Modern batteries included","Comprehensive optional features available out-of-the-box - authentication, validation, ORM integration, caching, middleware, and more. Use what you need, when you need it.","i-lucide-battery-charging",{"title":22,"description":23,"icon":24},"Strict & opinionated design","Thoughtful defaults and clear conventions guide you toward best practices, reducing decision fatigue and ensuring consistent, maintainable code.","i-lucide-shield-check",{"title":26,"description":27,"icon":28},"Hierarchical configuration","Layered configuration system allows easy modularization. Override settings at any level - application, controller, or route - for maximum flexibility.","i-lucide-layers-3",{"title":30,"description":31,"icon":32},"Powerful plugin system","Extend functionality seamlessly with official and community plugins. Build reusable components that integrate naturally with Litestar's architecture.","i-lucide-puzzle","::code-tree{defaultValue=\"app\u002Fserver\u002Fmain.py\"}\n\n```python [app\u002Fserver\u002Fmain.py]\nfrom litestar import Litestar\nfrom app.config.settings import get_settings\nfrom app.domain.users.controller import UserController\nfrom app.server.middleware import create_middleware\nfrom app.db.connection import get_db_connection\n\ndef create_app() -> Litestar:\n    settings = get_settings()\n\n    return Litestar(\n        route_handlers=[UserController],\n        middleware=create_middleware(settings),\n        on_startup=[get_db_connection().connect],\n        debug=settings.debug\n    )\n\napp = create_app()\n```\n\n```python [app\u002Fconfig\u002Fsettings.py]\nfrom pydantic import BaseSettings\nfrom functools import lru_cache\n\nclass Settings(BaseSettings):\n    debug: bool = False\n    database_url: str = \"sqlite:\u002F\u002F\u002F.\u002Fapp.db\"\n    secret_key: str = \"your-secret-key\"\n    cors_origins: list[str] = [\"*\"]\n\n    class Config:\n        env_file = \".env\"\n\n@lru_cache()\ndef get_settings() -> Settings:\n    return Settings()\n```\n\n```python [app\u002Fdomain\u002Fusers\u002Fcontroller.py]\nfrom litestar import Controller, get, post\nfrom litestar.dto import DTOConfig\nfrom app.domain.users.service import UserService\nfrom app.domain.users.schemas import UserResponse, UserCreate\n\nclass UserController(Controller):\n    path = \"\u002Fusers\"\n\n    def __init__(self, user_service: UserService) -> None:\n        self.user_service = user_service\n\n    @get(\"\u002F\")\n    async def list_users(self) -> list[UserResponse]:\n        return await self.user_service.get_all()\n\n    @post(\"\u002F\")\n    async def create_user(self, data: UserCreate) -> UserResponse:\n        return await self.user_service.create(data)\n```\n\n```python [app\u002Fdomain\u002Fusers\u002Fmodels.py]\nfrom sqlalchemy import Column, Integer, String, DateTime\nfrom sqlalchemy.ext.declarative import declarative_base\nfrom datetime import datetime\n\nBase = declarative_base()\n\nclass User(Base):\n    __tablename__ = \"users\"\n\n    id = Column(Integer, primary_key=True)\n    email = Column(String(255), unique=True, nullable=False)\n    name = Column(String(100), nullable=False)\n    created_at = Column(DateTime, default=datetime.utcnow)\n```\n\n```python [app\u002Fdb\u002Fconnection.py]\nfrom sqlalchemy.ext.asyncio import create_async_engine, AsyncSession\nfrom sqlalchemy.orm import sessionmaker\nfrom app.config.settings import get_settings\n\nclass DatabaseConnection:\n    def __init__(self):\n        settings = get_settings()\n        self.engine = create_async_engine(settings.database_url)\n        self.session_factory = sessionmaker(\n            self.engine, class_=AsyncSession\n        )\n\ndef get_db_connection() -> DatabaseConnection:\n    return DatabaseConnection()\n```\n\n```python [app\u002Fcli\u002Fcommands.py]\nimport typer\nfrom app.db.migrations import run_migrations\nfrom app.server.main import create_app\n\napp = typer.Typer()\n\n@app.command()\ndef migrate():\n    \"\"\"Run database migrations\"\"\"\n    run_migrations()\n    typer.echo(\"Migrations completed!\")\n\n@app.command()\ndef serve():\n    \"\"\"Start the development server\"\"\"\n    import uvicorn\n    litestar_app = create_app()\n    uvicorn.run(litestar_app, host=\"0.0.0.0\", port=8000)\n\nif __name__ == \"__main__\":\n    app()\n```\n\n```python [app\u002Flib\u002Futils.py]\nimport hashlib\nfrom datetime import datetime, timezone\nfrom typing import Any\n\ndef hash_password(password: str) -> str:\n    \"\"\"Hash a password using SHA-256\"\"\"\n    return hashlib.sha256(password.encode()).hexdigest()\n\ndef utc_now() -> datetime:\n    \"\"\"Get current UTC datetime\"\"\"\n    return datetime.now(timezone.utc)\n\ndef serialize_datetime(dt: datetime) -> str:\n    \"\"\"Serialize datetime to ISO format\"\"\"\n    return dt.isoformat()\n```\n\n```toml [pyproject.toml]\n[project]\nname = \"litestar-app\"\nversion = \"0.1.0\"\ndescription = \"A modern Litestar application\"\nreadme = \"README.md\"\nrequires-python = \">=3.8\"\ndependencies = [\n    \"litestar[standard]>=2.0.0\",\n    \"sqlalchemy[asyncio]>=2.0.0\",\n    \"pydantic>=2.0.0\",\n    \"typer>=0.9.0\",\n    \"uvicorn[standard]>=0.23.0\",\n]\n\n[project.optional-dependencies]\ndev = [\n    \"pytest>=7.4.0\",\n    \"pytest-asyncio>=0.21.0\",\n    \"black>=23.0.0\",\n    \"ruff>=0.0.280\",\n    \"mypy>=1.5.0\",\n]\n\n[project.scripts]\napp = \"app.cli.commands:app\"\n\n[build-system]\nrequires = [\"hatchling\"]\nbuild-backend = \"hatchling.build\"\n\n[tool.ruff]\ntarget-version = \"py38\"\nline-length = 88\nselect = [\"E\", \"F\", \"I\", \"UP\"]\n\n[tool.black]\nline-length = 88\ntarget-version = [\"py38\"]\n\n[tool.mypy]\npython_version = \"3.8\"\nstrict = true\n```\n\n::\n","yml",{"title":36,"description":37,"features":38,"cta":94},"Everything you need to build modern APIs","Litestar provides all the tools you need out of the box, with minimal configuration required.",[39,44,49,54,59,64,69,74,79,84,89],{"icon":40,"title":41,"description":42,"to":43},"i-lucide-badge-check","Data Validation And Parsing","Leverage the power of type hints to define how data should be validated, parsed and serialized.","https:\u002F\u002Fdocs.litestar.dev\u002F2\u002Fusage\u002Fdto\u002Findex.html",{"icon":45,"title":46,"description":47,"to":48},"i-lucide-sparkles","Open Ecosystem","Define schemas and models for validation with standard types such as dataclasses, libraries like Pydantic, msgspec, attr, or integrate your own.","https:\u002F\u002Fdocs.litestar.dev\u002F2\u002Fusage\u002Fapplications.html",{"icon":50,"title":51,"description":52,"to":53},"i-lucide-book","OpenAPI","Automatically generated OpenAPI schemas help to document APIs and integrate with the frontend via TypeScript schema generation.","https:\u002F\u002Fdocs.litestar.dev\u002F2\u002Fusage\u002Fopenapi\u002Findex.html",{"icon":55,"title":56,"description":57,"to":58},"i-simple-icons-swagger","Interactive API Documentation","Interactively explore your APIs through Swagger, Redoc or Stoplight Elements, powered by OpenAPI.","https:\u002F\u002Fdocs.litestar.dev\u002F2\u002Fusage\u002Fopenapi\u002Fui_plugins.html",{"icon":60,"title":61,"description":62,"to":63},"i-lucide-boxes","Middlewares","Handle rate-limiting, CORS, CSRF, compression, logging and many more common tasks with Litestar's built-in middlewares.","https:\u002F\u002Fdocs.litestar.dev\u002F2\u002Fusage\u002Fmiddleware\u002Fbuiltin-middleware.html",{"icon":65,"title":66,"description":67,"to":68},"i-lucide-store","Data Stores","Interfaces for various key\u002Fvalue stores that seamlessly integrate with your application and third party extensions.","https:\u002F\u002Fdocs.litestar.dev\u002F2\u002Fusage\u002Fstores.html",{"icon":70,"title":71,"description":72,"to":73},"i-lucide-database","ORM Integration","First-class SQLAlchemy support let's you use your models for validation and serialization directly, reducing code duplication.","https:\u002F\u002Fdocs.litestar.dev\u002F2\u002Fusage\u002Fdatabases\u002Fsqlalchemy\u002Findex.html",{"icon":75,"title":76,"description":77,"to":78},"i-lucide-syringe","Dependency Injection","Powerful dependency injection on all application layers, aides in code decoupling and reduces repetition.","https:\u002F\u002Fdocs.litestar.dev\u002F2\u002Fusage\u002Fdependency-injection.html",{"icon":80,"title":81,"description":82,"to":83},"i-lucide-database-zap","Caching","Response caching with minimal configuration and overhead to speed up response times.","https:\u002F\u002Fdocs.litestar.dev\u002F2\u002Fusage\u002Fcaching.html",{"icon":85,"title":86,"description":87,"to":88},"i-simple-icons-socketdotio","WebSockets","Easy to use WebSockets integration, featuring high- and low-level APIs and support for automatic data validation and serialization.","https:\u002F\u002Fdocs.litestar.dev\u002F2\u002Fusage\u002Fwebsockets.html",{"icon":90,"title":91,"description":92,"to":93},"i-lucide-shield-user","Authentication And Authorization","Session and JWT based authentication and utilities at your disposal to start building your authentication layer with ease.","https:\u002F\u002Fdocs.litestar.dev\u002F2\u002Fusage\u002Fsecurity\u002Findex.html",{"title":95,"label":96,"to":12,"icon":15},"Explore Litestar now","Start reading docs",{"cta":98,"tabs":101},{"label":99,"to":100,"icon":15},"New website & v3","\u002Fblog\u002Fnew-website-and-v3",[102,681,1638,2724],{"title":103,"icon":104,"content":105},"Minimal","i-lucide-leaf",{"data":106,"body":108,"toc":679},{"title":107,"description":107},"",{"type":109,"children":110},"root",[111,673],{"type":112,"tag":113,"props":114,"children":120},"element","code-tree",{"className":115,"default-value":119},[116,117,118],"lg:rounded-r-none","lg:border-r-0","dark:[--ui-border-muted:var(--color-gray-800)]","main.py",[121,474],{"type":112,"tag":122,"props":123,"children":127},"pre",{"className":124,"code":125,"filename":119,"language":126,"meta":107,"style":107},"language-python shiki shiki-themes material-theme-lighter material-theme-palenight","import uvicorn\nfrom litestar import Litestar, get\n\n@get(\"\u002F\")\nasync def hello() -> dict[str, str]:\n    return {\"message\": \"Hello, World!\"}\n\napp = Litestar(route_handlers=[hello])\n\nif __name__ == \"__main__\":\n    uvicorn.run(app)\n","python",[128],{"type":112,"tag":129,"props":130,"children":131},"code",{"__ignoreMap":107},[132,151,185,195,235,295,346,354,397,405,442],{"type":112,"tag":133,"props":134,"children":137},"span",{"class":135,"line":136},"line",1,[138,145],{"type":112,"tag":133,"props":139,"children":141},{"style":140},"--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[142],{"type":143,"value":144},"text","import",{"type":112,"tag":133,"props":146,"children":148},{"style":147},"--shiki-default:#90A4AE;--shiki-dark:#BABED8",[149],{"type":143,"value":150}," uvicorn\n",{"type":112,"tag":133,"props":152,"children":154},{"class":135,"line":153},2,[155,160,165,169,174,180],{"type":112,"tag":133,"props":156,"children":157},{"style":140},[158],{"type":143,"value":159},"from",{"type":112,"tag":133,"props":161,"children":162},{"style":147},[163],{"type":143,"value":164}," litestar ",{"type":112,"tag":133,"props":166,"children":167},{"style":140},[168],{"type":143,"value":144},{"type":112,"tag":133,"props":170,"children":171},{"style":147},[172],{"type":143,"value":173}," Litestar",{"type":112,"tag":133,"props":175,"children":177},{"style":176},"--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[178],{"type":143,"value":179},",",{"type":112,"tag":133,"props":181,"children":182},{"style":147},[183],{"type":143,"value":184}," get\n",{"type":112,"tag":133,"props":186,"children":188},{"class":135,"line":187},3,[189],{"type":112,"tag":133,"props":190,"children":192},{"emptyLinePlaceholder":191},true,[193],{"type":143,"value":194},"\n",{"type":112,"tag":133,"props":196,"children":198},{"class":135,"line":197},4,[199,204,210,215,220,226,230],{"type":112,"tag":133,"props":200,"children":201},{"style":176},[202],{"type":143,"value":203},"@",{"type":112,"tag":133,"props":205,"children":207},{"style":206},"--shiki-default:#6182B8;--shiki-dark:#82AAFF",[208],{"type":143,"value":209},"get",{"type":112,"tag":133,"props":211,"children":212},{"style":176},[213],{"type":143,"value":214},"(",{"type":112,"tag":133,"props":216,"children":217},{"style":176},[218],{"type":143,"value":219},"\"",{"type":112,"tag":133,"props":221,"children":223},{"style":222},"--shiki-default:#91B859;--shiki-dark:#C3E88D",[224],{"type":143,"value":225},"\u002F",{"type":112,"tag":133,"props":227,"children":228},{"style":176},[229],{"type":143,"value":219},{"type":112,"tag":133,"props":231,"children":232},{"style":176},[233],{"type":143,"value":234},")\n",{"type":112,"tag":133,"props":236,"children":238},{"class":135,"line":237},5,[239,245,250,255,260,265,270,275,281,285,290],{"type":112,"tag":133,"props":240,"children":242},{"style":241},"--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[243],{"type":143,"value":244},"async",{"type":112,"tag":133,"props":246,"children":247},{"style":241},[248],{"type":143,"value":249}," def",{"type":112,"tag":133,"props":251,"children":252},{"style":206},[253],{"type":143,"value":254}," hello",{"type":112,"tag":133,"props":256,"children":257},{"style":176},[258],{"type":143,"value":259},"()",{"type":112,"tag":133,"props":261,"children":262},{"style":176},[263],{"type":143,"value":264}," ->",{"type":112,"tag":133,"props":266,"children":267},{"style":147},[268],{"type":143,"value":269}," dict",{"type":112,"tag":133,"props":271,"children":272},{"style":176},[273],{"type":143,"value":274},"[",{"type":112,"tag":133,"props":276,"children":278},{"style":277},"--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[279],{"type":143,"value":280},"str",{"type":112,"tag":133,"props":282,"children":283},{"style":176},[284],{"type":143,"value":179},{"type":112,"tag":133,"props":286,"children":287},{"style":277},[288],{"type":143,"value":289}," str",{"type":112,"tag":133,"props":291,"children":292},{"style":176},[293],{"type":143,"value":294},"]:\n",{"type":112,"tag":133,"props":296,"children":298},{"class":135,"line":297},6,[299,304,309,313,318,322,327,332,337,341],{"type":112,"tag":133,"props":300,"children":301},{"style":140},[302],{"type":143,"value":303},"    return",{"type":112,"tag":133,"props":305,"children":306},{"style":176},[307],{"type":143,"value":308}," {",{"type":112,"tag":133,"props":310,"children":311},{"style":176},[312],{"type":143,"value":219},{"type":112,"tag":133,"props":314,"children":315},{"style":222},[316],{"type":143,"value":317},"message",{"type":112,"tag":133,"props":319,"children":320},{"style":176},[321],{"type":143,"value":219},{"type":112,"tag":133,"props":323,"children":324},{"style":176},[325],{"type":143,"value":326},":",{"type":112,"tag":133,"props":328,"children":329},{"style":176},[330],{"type":143,"value":331}," \"",{"type":112,"tag":133,"props":333,"children":334},{"style":222},[335],{"type":143,"value":336},"Hello, World!",{"type":112,"tag":133,"props":338,"children":339},{"style":176},[340],{"type":143,"value":219},{"type":112,"tag":133,"props":342,"children":343},{"style":176},[344],{"type":143,"value":345},"}\n",{"type":112,"tag":133,"props":347,"children":349},{"class":135,"line":348},7,[350],{"type":112,"tag":133,"props":351,"children":352},{"emptyLinePlaceholder":191},[353],{"type":143,"value":194},{"type":112,"tag":133,"props":355,"children":357},{"class":135,"line":356},8,[358,363,368,372,376,382,387,392],{"type":112,"tag":133,"props":359,"children":360},{"style":147},[361],{"type":143,"value":362},"app ",{"type":112,"tag":133,"props":364,"children":365},{"style":176},[366],{"type":143,"value":367},"=",{"type":112,"tag":133,"props":369,"children":370},{"style":206},[371],{"type":143,"value":173},{"type":112,"tag":133,"props":373,"children":374},{"style":176},[375],{"type":143,"value":214},{"type":112,"tag":133,"props":377,"children":379},{"style":378},"--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[380],{"type":143,"value":381},"route_handlers",{"type":112,"tag":133,"props":383,"children":384},{"style":176},[385],{"type":143,"value":386},"=[",{"type":112,"tag":133,"props":388,"children":389},{"style":206},[390],{"type":143,"value":391},"hello",{"type":112,"tag":133,"props":393,"children":394},{"style":176},[395],{"type":143,"value":396},"])\n",{"type":112,"tag":133,"props":398,"children":400},{"class":135,"line":399},9,[401],{"type":112,"tag":133,"props":402,"children":403},{"emptyLinePlaceholder":191},[404],{"type":143,"value":194},{"type":112,"tag":133,"props":406,"children":408},{"class":135,"line":407},10,[409,414,419,424,428,433,437],{"type":112,"tag":133,"props":410,"children":411},{"style":140},[412],{"type":143,"value":413},"if",{"type":112,"tag":133,"props":415,"children":416},{"style":147},[417],{"type":143,"value":418}," __name__ ",{"type":112,"tag":133,"props":420,"children":421},{"style":176},[422],{"type":143,"value":423},"==",{"type":112,"tag":133,"props":425,"children":426},{"style":176},[427],{"type":143,"value":331},{"type":112,"tag":133,"props":429,"children":430},{"style":222},[431],{"type":143,"value":432},"__main__",{"type":112,"tag":133,"props":434,"children":435},{"style":176},[436],{"type":143,"value":219},{"type":112,"tag":133,"props":438,"children":439},{"style":176},[440],{"type":143,"value":441},":\n",{"type":112,"tag":133,"props":443,"children":445},{"class":135,"line":444},11,[446,451,456,461,465,470],{"type":112,"tag":133,"props":447,"children":448},{"style":147},[449],{"type":143,"value":450},"    uvicorn",{"type":112,"tag":133,"props":452,"children":453},{"style":176},[454],{"type":143,"value":455},".",{"type":112,"tag":133,"props":457,"children":458},{"style":206},[459],{"type":143,"value":460},"run",{"type":112,"tag":133,"props":462,"children":463},{"style":176},[464],{"type":143,"value":214},{"type":112,"tag":133,"props":466,"children":467},{"style":206},[468],{"type":143,"value":469},"app",{"type":112,"tag":133,"props":471,"children":472},{"style":176},[473],{"type":143,"value":234},{"type":112,"tag":122,"props":475,"children":480},{"className":476,"code":477,"filename":478,"language":479,"meta":107,"style":107},"language-toml shiki shiki-themes material-theme-lighter material-theme-palenight","[project]\nname = \"litestar-hello-world\"\nversion = \"0.1.0\"\ndescription = \"A minimal Litestar example\"\nreadme = \"README.md\"\nrequires-python = \">=3.13\"\ndependencies = [\n    \"litestar[standard]>=2.17.0\",\n]\n","pyproject.toml","toml",[481],{"type":112,"tag":129,"props":482,"children":483},{"__ignoreMap":107},[484,501,527,552,577,602,627,644,666],{"type":112,"tag":133,"props":485,"children":486},{"class":135,"line":136},[487,491,496],{"type":112,"tag":133,"props":488,"children":489},{"style":176},[490],{"type":143,"value":274},{"type":112,"tag":133,"props":492,"children":493},{"style":277},[494],{"type":143,"value":495},"project",{"type":112,"tag":133,"props":497,"children":498},{"style":176},[499],{"type":143,"value":500},"]\n",{"type":112,"tag":133,"props":502,"children":503},{"class":135,"line":153},[504,509,513,517,522],{"type":112,"tag":133,"props":505,"children":506},{"style":147},[507],{"type":143,"value":508},"name ",{"type":112,"tag":133,"props":510,"children":511},{"style":176},[512],{"type":143,"value":367},{"type":112,"tag":133,"props":514,"children":515},{"style":176},[516],{"type":143,"value":331},{"type":112,"tag":133,"props":518,"children":519},{"style":222},[520],{"type":143,"value":521},"litestar-hello-world",{"type":112,"tag":133,"props":523,"children":524},{"style":176},[525],{"type":143,"value":526},"\"\n",{"type":112,"tag":133,"props":528,"children":529},{"class":135,"line":187},[530,535,539,543,548],{"type":112,"tag":133,"props":531,"children":532},{"style":147},[533],{"type":143,"value":534},"version ",{"type":112,"tag":133,"props":536,"children":537},{"style":176},[538],{"type":143,"value":367},{"type":112,"tag":133,"props":540,"children":541},{"style":176},[542],{"type":143,"value":331},{"type":112,"tag":133,"props":544,"children":545},{"style":222},[546],{"type":143,"value":547},"0.1.0",{"type":112,"tag":133,"props":549,"children":550},{"style":176},[551],{"type":143,"value":526},{"type":112,"tag":133,"props":553,"children":554},{"class":135,"line":197},[555,560,564,568,573],{"type":112,"tag":133,"props":556,"children":557},{"style":147},[558],{"type":143,"value":559},"description ",{"type":112,"tag":133,"props":561,"children":562},{"style":176},[563],{"type":143,"value":367},{"type":112,"tag":133,"props":565,"children":566},{"style":176},[567],{"type":143,"value":331},{"type":112,"tag":133,"props":569,"children":570},{"style":222},[571],{"type":143,"value":572},"A minimal Litestar example",{"type":112,"tag":133,"props":574,"children":575},{"style":176},[576],{"type":143,"value":526},{"type":112,"tag":133,"props":578,"children":579},{"class":135,"line":237},[580,585,589,593,598],{"type":112,"tag":133,"props":581,"children":582},{"style":147},[583],{"type":143,"value":584},"readme ",{"type":112,"tag":133,"props":586,"children":587},{"style":176},[588],{"type":143,"value":367},{"type":112,"tag":133,"props":590,"children":591},{"style":176},[592],{"type":143,"value":331},{"type":112,"tag":133,"props":594,"children":595},{"style":222},[596],{"type":143,"value":597},"README.md",{"type":112,"tag":133,"props":599,"children":600},{"style":176},[601],{"type":143,"value":526},{"type":112,"tag":133,"props":603,"children":604},{"class":135,"line":297},[605,610,614,618,623],{"type":112,"tag":133,"props":606,"children":607},{"style":147},[608],{"type":143,"value":609},"requires-python ",{"type":112,"tag":133,"props":611,"children":612},{"style":176},[613],{"type":143,"value":367},{"type":112,"tag":133,"props":615,"children":616},{"style":176},[617],{"type":143,"value":331},{"type":112,"tag":133,"props":619,"children":620},{"style":222},[621],{"type":143,"value":622},">=3.13",{"type":112,"tag":133,"props":624,"children":625},{"style":176},[626],{"type":143,"value":526},{"type":112,"tag":133,"props":628,"children":629},{"class":135,"line":348},[630,635,639],{"type":112,"tag":133,"props":631,"children":632},{"style":147},[633],{"type":143,"value":634},"dependencies ",{"type":112,"tag":133,"props":636,"children":637},{"style":176},[638],{"type":143,"value":367},{"type":112,"tag":133,"props":640,"children":641},{"style":176},[642],{"type":143,"value":643}," [\n",{"type":112,"tag":133,"props":645,"children":646},{"class":135,"line":356},[647,652,657,661],{"type":112,"tag":133,"props":648,"children":649},{"style":176},[650],{"type":143,"value":651},"    \"",{"type":112,"tag":133,"props":653,"children":654},{"style":222},[655],{"type":143,"value":656},"litestar[standard]>=2.17.0",{"type":112,"tag":133,"props":658,"children":659},{"style":176},[660],{"type":143,"value":219},{"type":112,"tag":133,"props":662,"children":663},{"style":176},[664],{"type":143,"value":665},",\n",{"type":112,"tag":133,"props":667,"children":668},{"class":135,"line":399},[669],{"type":112,"tag":133,"props":670,"children":671},{"style":176},[672],{"type":143,"value":500},{"type":112,"tag":674,"props":675,"children":676},"style",{},[677],{"type":143,"value":678},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":107,"searchDepth":153,"depth":153,"links":680},[],{"title":682,"icon":683,"content":684},"Routing","i-lucide-milestone",{"data":685,"body":686,"toc":1636},{"title":107,"description":107},{"type":109,"children":687},[688,1632],{"type":112,"tag":113,"props":689,"children":691},{"className":690,"default-value":119},[116,117,118],[692,980,1238,1452],{"type":112,"tag":122,"props":693,"children":696},{"className":124,"code":694,"filename":695,"language":126,"meta":107,"style":107},"from litestar import Controller, get\n\nclass MyController(Controller):\n    path = \"\u002Fclass\"\n\n    @get(\"\u002F{name:str}\")\n    async def greet(self, name: str) -> dict[str, str]:\n        return {\"message\": f\"Hello, {name}!\"}\n","controllers\u002Fclass_controller.py",[697],{"type":112,"tag":129,"props":698,"children":699},{"__ignoreMap":107},[700,728,735,762,787,794,841,918],{"type":112,"tag":133,"props":701,"children":702},{"class":135,"line":136},[703,707,711,715,720,724],{"type":112,"tag":133,"props":704,"children":705},{"style":140},[706],{"type":143,"value":159},{"type":112,"tag":133,"props":708,"children":709},{"style":147},[710],{"type":143,"value":164},{"type":112,"tag":133,"props":712,"children":713},{"style":140},[714],{"type":143,"value":144},{"type":112,"tag":133,"props":716,"children":717},{"style":147},[718],{"type":143,"value":719}," Controller",{"type":112,"tag":133,"props":721,"children":722},{"style":176},[723],{"type":143,"value":179},{"type":112,"tag":133,"props":725,"children":726},{"style":147},[727],{"type":143,"value":184},{"type":112,"tag":133,"props":729,"children":730},{"class":135,"line":153},[731],{"type":112,"tag":133,"props":732,"children":733},{"emptyLinePlaceholder":191},[734],{"type":143,"value":194},{"type":112,"tag":133,"props":736,"children":737},{"class":135,"line":187},[738,743,748,752,757],{"type":112,"tag":133,"props":739,"children":740},{"style":241},[741],{"type":143,"value":742},"class",{"type":112,"tag":133,"props":744,"children":745},{"style":277},[746],{"type":143,"value":747}," MyController",{"type":112,"tag":133,"props":749,"children":750},{"style":176},[751],{"type":143,"value":214},{"type":112,"tag":133,"props":753,"children":754},{"style":277},[755],{"type":143,"value":756},"Controller",{"type":112,"tag":133,"props":758,"children":759},{"style":176},[760],{"type":143,"value":761},"):\n",{"type":112,"tag":133,"props":763,"children":764},{"class":135,"line":197},[765,770,774,778,783],{"type":112,"tag":133,"props":766,"children":767},{"style":147},[768],{"type":143,"value":769},"    path ",{"type":112,"tag":133,"props":771,"children":772},{"style":176},[773],{"type":143,"value":367},{"type":112,"tag":133,"props":775,"children":776},{"style":176},[777],{"type":143,"value":331},{"type":112,"tag":133,"props":779,"children":780},{"style":222},[781],{"type":143,"value":782},"\u002Fclass",{"type":112,"tag":133,"props":784,"children":785},{"style":176},[786],{"type":143,"value":526},{"type":112,"tag":133,"props":788,"children":789},{"class":135,"line":237},[790],{"type":112,"tag":133,"props":791,"children":792},{"emptyLinePlaceholder":191},[793],{"type":143,"value":194},{"type":112,"tag":133,"props":795,"children":796},{"class":135,"line":297},[797,802,806,810,814,818,824,828,833,837],{"type":112,"tag":133,"props":798,"children":799},{"style":176},[800],{"type":143,"value":801},"    @",{"type":112,"tag":133,"props":803,"children":804},{"style":206},[805],{"type":143,"value":209},{"type":112,"tag":133,"props":807,"children":808},{"style":176},[809],{"type":143,"value":214},{"type":112,"tag":133,"props":811,"children":812},{"style":176},[813],{"type":143,"value":219},{"type":112,"tag":133,"props":815,"children":816},{"style":222},[817],{"type":143,"value":225},{"type":112,"tag":133,"props":819,"children":821},{"style":820},"--shiki-default:#F76D47;--shiki-dark:#F78C6C",[822],{"type":143,"value":823},"{name",{"type":112,"tag":133,"props":825,"children":826},{"style":241},[827],{"type":143,"value":326},{"type":112,"tag":133,"props":829,"children":830},{"style":820},[831],{"type":143,"value":832},"str}",{"type":112,"tag":133,"props":834,"children":835},{"style":176},[836],{"type":143,"value":219},{"type":112,"tag":133,"props":838,"children":839},{"style":176},[840],{"type":143,"value":234},{"type":112,"tag":133,"props":842,"children":843},{"class":135,"line":348},[844,849,853,858,862,868,872,877,881,885,890,894,898,902,906,910,914],{"type":112,"tag":133,"props":845,"children":846},{"style":241},[847],{"type":143,"value":848},"    async",{"type":112,"tag":133,"props":850,"children":851},{"style":241},[852],{"type":143,"value":249},{"type":112,"tag":133,"props":854,"children":855},{"style":206},[856],{"type":143,"value":857}," greet",{"type":112,"tag":133,"props":859,"children":860},{"style":176},[861],{"type":143,"value":214},{"type":112,"tag":133,"props":863,"children":865},{"style":864},"--shiki-default:#E53935;--shiki-default-font-style:italic;--shiki-dark:#F07178;--shiki-dark-font-style:italic",[866],{"type":143,"value":867},"self",{"type":112,"tag":133,"props":869,"children":870},{"style":176},[871],{"type":143,"value":179},{"type":112,"tag":133,"props":873,"children":874},{"style":378},[875],{"type":143,"value":876}," name",{"type":112,"tag":133,"props":878,"children":879},{"style":176},[880],{"type":143,"value":326},{"type":112,"tag":133,"props":882,"children":883},{"style":277},[884],{"type":143,"value":289},{"type":112,"tag":133,"props":886,"children":887},{"style":176},[888],{"type":143,"value":889},")",{"type":112,"tag":133,"props":891,"children":892},{"style":176},[893],{"type":143,"value":264},{"type":112,"tag":133,"props":895,"children":896},{"style":147},[897],{"type":143,"value":269},{"type":112,"tag":133,"props":899,"children":900},{"style":176},[901],{"type":143,"value":274},{"type":112,"tag":133,"props":903,"children":904},{"style":277},[905],{"type":143,"value":280},{"type":112,"tag":133,"props":907,"children":908},{"style":176},[909],{"type":143,"value":179},{"type":112,"tag":133,"props":911,"children":912},{"style":277},[913],{"type":143,"value":289},{"type":112,"tag":133,"props":915,"children":916},{"style":176},[917],{"type":143,"value":294},{"type":112,"tag":133,"props":919,"children":920},{"class":135,"line":356},[921,926,930,934,938,942,946,951,956,961,966,971,976],{"type":112,"tag":133,"props":922,"children":923},{"style":140},[924],{"type":143,"value":925},"        return",{"type":112,"tag":133,"props":927,"children":928},{"style":176},[929],{"type":143,"value":308},{"type":112,"tag":133,"props":931,"children":932},{"style":176},[933],{"type":143,"value":219},{"type":112,"tag":133,"props":935,"children":936},{"style":222},[937],{"type":143,"value":317},{"type":112,"tag":133,"props":939,"children":940},{"style":176},[941],{"type":143,"value":219},{"type":112,"tag":133,"props":943,"children":944},{"style":176},[945],{"type":143,"value":326},{"type":112,"tag":133,"props":947,"children":948},{"style":241},[949],{"type":143,"value":950}," f",{"type":112,"tag":133,"props":952,"children":953},{"style":222},[954],{"type":143,"value":955},"\"Hello, ",{"type":112,"tag":133,"props":957,"children":958},{"style":820},[959],{"type":143,"value":960},"{",{"type":112,"tag":133,"props":962,"children":963},{"style":147},[964],{"type":143,"value":965},"name",{"type":112,"tag":133,"props":967,"children":968},{"style":820},[969],{"type":143,"value":970},"}",{"type":112,"tag":133,"props":972,"children":973},{"style":222},[974],{"type":143,"value":975},"!\"",{"type":112,"tag":133,"props":977,"children":978},{"style":176},[979],{"type":143,"value":345},{"type":112,"tag":122,"props":981,"children":984},{"className":124,"code":982,"filename":983,"language":126,"meta":107,"style":107},"from litestar import Router\nfrom litestar.handlers import get\n\n@get(\"\u002F\")\nasync def index() -> dict[str, str]:\n    return {\"message\": \"Hello, World!\"}\n\nrouter = Router(path=\"\u002Fgreet\", route_handlers=[index])\n","controllers\u002Frouter_controller.py",[985],{"type":112,"tag":129,"props":986,"children":987},{"__ignoreMap":107},[988,1008,1037,1044,1075,1123,1166,1173],{"type":112,"tag":133,"props":989,"children":990},{"class":135,"line":136},[991,995,999,1003],{"type":112,"tag":133,"props":992,"children":993},{"style":140},[994],{"type":143,"value":159},{"type":112,"tag":133,"props":996,"children":997},{"style":147},[998],{"type":143,"value":164},{"type":112,"tag":133,"props":1000,"children":1001},{"style":140},[1002],{"type":143,"value":144},{"type":112,"tag":133,"props":1004,"children":1005},{"style":147},[1006],{"type":143,"value":1007}," Router\n",{"type":112,"tag":133,"props":1009,"children":1010},{"class":135,"line":153},[1011,1015,1020,1024,1029,1033],{"type":112,"tag":133,"props":1012,"children":1013},{"style":140},[1014],{"type":143,"value":159},{"type":112,"tag":133,"props":1016,"children":1017},{"style":147},[1018],{"type":143,"value":1019}," litestar",{"type":112,"tag":133,"props":1021,"children":1022},{"style":176},[1023],{"type":143,"value":455},{"type":112,"tag":133,"props":1025,"children":1026},{"style":147},[1027],{"type":143,"value":1028},"handlers ",{"type":112,"tag":133,"props":1030,"children":1031},{"style":140},[1032],{"type":143,"value":144},{"type":112,"tag":133,"props":1034,"children":1035},{"style":147},[1036],{"type":143,"value":184},{"type":112,"tag":133,"props":1038,"children":1039},{"class":135,"line":187},[1040],{"type":112,"tag":133,"props":1041,"children":1042},{"emptyLinePlaceholder":191},[1043],{"type":143,"value":194},{"type":112,"tag":133,"props":1045,"children":1046},{"class":135,"line":197},[1047,1051,1055,1059,1063,1067,1071],{"type":112,"tag":133,"props":1048,"children":1049},{"style":176},[1050],{"type":143,"value":203},{"type":112,"tag":133,"props":1052,"children":1053},{"style":206},[1054],{"type":143,"value":209},{"type":112,"tag":133,"props":1056,"children":1057},{"style":176},[1058],{"type":143,"value":214},{"type":112,"tag":133,"props":1060,"children":1061},{"style":176},[1062],{"type":143,"value":219},{"type":112,"tag":133,"props":1064,"children":1065},{"style":222},[1066],{"type":143,"value":225},{"type":112,"tag":133,"props":1068,"children":1069},{"style":176},[1070],{"type":143,"value":219},{"type":112,"tag":133,"props":1072,"children":1073},{"style":176},[1074],{"type":143,"value":234},{"type":112,"tag":133,"props":1076,"children":1077},{"class":135,"line":237},[1078,1082,1086,1091,1095,1099,1103,1107,1111,1115,1119],{"type":112,"tag":133,"props":1079,"children":1080},{"style":241},[1081],{"type":143,"value":244},{"type":112,"tag":133,"props":1083,"children":1084},{"style":241},[1085],{"type":143,"value":249},{"type":112,"tag":133,"props":1087,"children":1088},{"style":206},[1089],{"type":143,"value":1090}," index",{"type":112,"tag":133,"props":1092,"children":1093},{"style":176},[1094],{"type":143,"value":259},{"type":112,"tag":133,"props":1096,"children":1097},{"style":176},[1098],{"type":143,"value":264},{"type":112,"tag":133,"props":1100,"children":1101},{"style":147},[1102],{"type":143,"value":269},{"type":112,"tag":133,"props":1104,"children":1105},{"style":176},[1106],{"type":143,"value":274},{"type":112,"tag":133,"props":1108,"children":1109},{"style":277},[1110],{"type":143,"value":280},{"type":112,"tag":133,"props":1112,"children":1113},{"style":176},[1114],{"type":143,"value":179},{"type":112,"tag":133,"props":1116,"children":1117},{"style":277},[1118],{"type":143,"value":289},{"type":112,"tag":133,"props":1120,"children":1121},{"style":176},[1122],{"type":143,"value":294},{"type":112,"tag":133,"props":1124,"children":1125},{"class":135,"line":297},[1126,1130,1134,1138,1142,1146,1150,1154,1158,1162],{"type":112,"tag":133,"props":1127,"children":1128},{"style":140},[1129],{"type":143,"value":303},{"type":112,"tag":133,"props":1131,"children":1132},{"style":176},[1133],{"type":143,"value":308},{"type":112,"tag":133,"props":1135,"children":1136},{"style":176},[1137],{"type":143,"value":219},{"type":112,"tag":133,"props":1139,"children":1140},{"style":222},[1141],{"type":143,"value":317},{"type":112,"tag":133,"props":1143,"children":1144},{"style":176},[1145],{"type":143,"value":219},{"type":112,"tag":133,"props":1147,"children":1148},{"style":176},[1149],{"type":143,"value":326},{"type":112,"tag":133,"props":1151,"children":1152},{"style":176},[1153],{"type":143,"value":331},{"type":112,"tag":133,"props":1155,"children":1156},{"style":222},[1157],{"type":143,"value":336},{"type":112,"tag":133,"props":1159,"children":1160},{"style":176},[1161],{"type":143,"value":219},{"type":112,"tag":133,"props":1163,"children":1164},{"style":176},[1165],{"type":143,"value":345},{"type":112,"tag":133,"props":1167,"children":1168},{"class":135,"line":348},[1169],{"type":112,"tag":133,"props":1170,"children":1171},{"emptyLinePlaceholder":191},[1172],{"type":143,"value":194},{"type":112,"tag":133,"props":1174,"children":1175},{"class":135,"line":356},[1176,1181,1185,1190,1194,1199,1203,1207,1212,1216,1220,1225,1229,1234],{"type":112,"tag":133,"props":1177,"children":1178},{"style":147},[1179],{"type":143,"value":1180},"router ",{"type":112,"tag":133,"props":1182,"children":1183},{"style":176},[1184],{"type":143,"value":367},{"type":112,"tag":133,"props":1186,"children":1187},{"style":206},[1188],{"type":143,"value":1189}," Router",{"type":112,"tag":133,"props":1191,"children":1192},{"style":176},[1193],{"type":143,"value":214},{"type":112,"tag":133,"props":1195,"children":1196},{"style":378},[1197],{"type":143,"value":1198},"path",{"type":112,"tag":133,"props":1200,"children":1201},{"style":176},[1202],{"type":143,"value":367},{"type":112,"tag":133,"props":1204,"children":1205},{"style":176},[1206],{"type":143,"value":219},{"type":112,"tag":133,"props":1208,"children":1209},{"style":222},[1210],{"type":143,"value":1211},"\u002Fgreet",{"type":112,"tag":133,"props":1213,"children":1214},{"style":176},[1215],{"type":143,"value":219},{"type":112,"tag":133,"props":1217,"children":1218},{"style":176},[1219],{"type":143,"value":179},{"type":112,"tag":133,"props":1221,"children":1222},{"style":378},[1223],{"type":143,"value":1224}," route_handlers",{"type":112,"tag":133,"props":1226,"children":1227},{"style":176},[1228],{"type":143,"value":386},{"type":112,"tag":133,"props":1230,"children":1231},{"style":206},[1232],{"type":143,"value":1233},"index",{"type":112,"tag":133,"props":1235,"children":1236},{"style":176},[1237],{"type":143,"value":396},{"type":112,"tag":122,"props":1239,"children":1241},{"className":124,"code":1240,"filename":119,"language":126,"meta":107,"style":107},"import uvicorn\nfrom litestar import Litestar\nfrom controllers.class_controller import MyController\nfrom controllers.router_controller import router\n\napp = Litestar(route_handlers=[MyController, router])\n\nif __name__ == \"__main__\":\n    uvicorn.run(app)\n",[1242],{"type":112,"tag":129,"props":1243,"children":1244},{"__ignoreMap":107},[1245,1256,1276,1306,1335,1342,1387,1394,1425],{"type":112,"tag":133,"props":1246,"children":1247},{"class":135,"line":136},[1248,1252],{"type":112,"tag":133,"props":1249,"children":1250},{"style":140},[1251],{"type":143,"value":144},{"type":112,"tag":133,"props":1253,"children":1254},{"style":147},[1255],{"type":143,"value":150},{"type":112,"tag":133,"props":1257,"children":1258},{"class":135,"line":153},[1259,1263,1267,1271],{"type":112,"tag":133,"props":1260,"children":1261},{"style":140},[1262],{"type":143,"value":159},{"type":112,"tag":133,"props":1264,"children":1265},{"style":147},[1266],{"type":143,"value":164},{"type":112,"tag":133,"props":1268,"children":1269},{"style":140},[1270],{"type":143,"value":144},{"type":112,"tag":133,"props":1272,"children":1273},{"style":147},[1274],{"type":143,"value":1275}," Litestar\n",{"type":112,"tag":133,"props":1277,"children":1278},{"class":135,"line":187},[1279,1283,1288,1292,1297,1301],{"type":112,"tag":133,"props":1280,"children":1281},{"style":140},[1282],{"type":143,"value":159},{"type":112,"tag":133,"props":1284,"children":1285},{"style":147},[1286],{"type":143,"value":1287}," controllers",{"type":112,"tag":133,"props":1289,"children":1290},{"style":176},[1291],{"type":143,"value":455},{"type":112,"tag":133,"props":1293,"children":1294},{"style":147},[1295],{"type":143,"value":1296},"class_controller ",{"type":112,"tag":133,"props":1298,"children":1299},{"style":140},[1300],{"type":143,"value":144},{"type":112,"tag":133,"props":1302,"children":1303},{"style":147},[1304],{"type":143,"value":1305}," MyController\n",{"type":112,"tag":133,"props":1307,"children":1308},{"class":135,"line":197},[1309,1313,1317,1321,1326,1330],{"type":112,"tag":133,"props":1310,"children":1311},{"style":140},[1312],{"type":143,"value":159},{"type":112,"tag":133,"props":1314,"children":1315},{"style":147},[1316],{"type":143,"value":1287},{"type":112,"tag":133,"props":1318,"children":1319},{"style":176},[1320],{"type":143,"value":455},{"type":112,"tag":133,"props":1322,"children":1323},{"style":147},[1324],{"type":143,"value":1325},"router_controller ",{"type":112,"tag":133,"props":1327,"children":1328},{"style":140},[1329],{"type":143,"value":144},{"type":112,"tag":133,"props":1331,"children":1332},{"style":147},[1333],{"type":143,"value":1334}," router\n",{"type":112,"tag":133,"props":1336,"children":1337},{"class":135,"line":237},[1338],{"type":112,"tag":133,"props":1339,"children":1340},{"emptyLinePlaceholder":191},[1341],{"type":143,"value":194},{"type":112,"tag":133,"props":1343,"children":1344},{"class":135,"line":297},[1345,1349,1353,1357,1361,1365,1369,1374,1378,1383],{"type":112,"tag":133,"props":1346,"children":1347},{"style":147},[1348],{"type":143,"value":362},{"type":112,"tag":133,"props":1350,"children":1351},{"style":176},[1352],{"type":143,"value":367},{"type":112,"tag":133,"props":1354,"children":1355},{"style":206},[1356],{"type":143,"value":173},{"type":112,"tag":133,"props":1358,"children":1359},{"style":176},[1360],{"type":143,"value":214},{"type":112,"tag":133,"props":1362,"children":1363},{"style":378},[1364],{"type":143,"value":381},{"type":112,"tag":133,"props":1366,"children":1367},{"style":176},[1368],{"type":143,"value":386},{"type":112,"tag":133,"props":1370,"children":1371},{"style":206},[1372],{"type":143,"value":1373},"MyController",{"type":112,"tag":133,"props":1375,"children":1376},{"style":176},[1377],{"type":143,"value":179},{"type":112,"tag":133,"props":1379,"children":1380},{"style":206},[1381],{"type":143,"value":1382}," router",{"type":112,"tag":133,"props":1384,"children":1385},{"style":176},[1386],{"type":143,"value":396},{"type":112,"tag":133,"props":1388,"children":1389},{"class":135,"line":348},[1390],{"type":112,"tag":133,"props":1391,"children":1392},{"emptyLinePlaceholder":191},[1393],{"type":143,"value":194},{"type":112,"tag":133,"props":1395,"children":1396},{"class":135,"line":356},[1397,1401,1405,1409,1413,1417,1421],{"type":112,"tag":133,"props":1398,"children":1399},{"style":140},[1400],{"type":143,"value":413},{"type":112,"tag":133,"props":1402,"children":1403},{"style":147},[1404],{"type":143,"value":418},{"type":112,"tag":133,"props":1406,"children":1407},{"style":176},[1408],{"type":143,"value":423},{"type":112,"tag":133,"props":1410,"children":1411},{"style":176},[1412],{"type":143,"value":331},{"type":112,"tag":133,"props":1414,"children":1415},{"style":222},[1416],{"type":143,"value":432},{"type":112,"tag":133,"props":1418,"children":1419},{"style":176},[1420],{"type":143,"value":219},{"type":112,"tag":133,"props":1422,"children":1423},{"style":176},[1424],{"type":143,"value":441},{"type":112,"tag":133,"props":1426,"children":1427},{"class":135,"line":399},[1428,1432,1436,1440,1444,1448],{"type":112,"tag":133,"props":1429,"children":1430},{"style":147},[1431],{"type":143,"value":450},{"type":112,"tag":133,"props":1433,"children":1434},{"style":176},[1435],{"type":143,"value":455},{"type":112,"tag":133,"props":1437,"children":1438},{"style":206},[1439],{"type":143,"value":460},{"type":112,"tag":133,"props":1441,"children":1442},{"style":176},[1443],{"type":143,"value":214},{"type":112,"tag":133,"props":1445,"children":1446},{"style":206},[1447],{"type":143,"value":469},{"type":112,"tag":133,"props":1449,"children":1450},{"style":176},[1451],{"type":143,"value":234},{"type":112,"tag":122,"props":1453,"children":1455},{"className":476,"code":1454,"filename":478,"language":479,"meta":107,"style":107},"[project]\nname = \"litestar-routing-example\"\nversion = \"0.1.0\"\ndescription = \"A Litestar routing example\"\nreadme = \"README.md\"\nrequires-python = \">=3.13\"\ndependencies = [\n    \"litestar[standard]>=2.17.0\",\n]\n",[1456],{"type":112,"tag":129,"props":1457,"children":1458},{"__ignoreMap":107},[1459,1474,1498,1521,1545,1568,1591,1606,1625],{"type":112,"tag":133,"props":1460,"children":1461},{"class":135,"line":136},[1462,1466,1470],{"type":112,"tag":133,"props":1463,"children":1464},{"style":176},[1465],{"type":143,"value":274},{"type":112,"tag":133,"props":1467,"children":1468},{"style":277},[1469],{"type":143,"value":495},{"type":112,"tag":133,"props":1471,"children":1472},{"style":176},[1473],{"type":143,"value":500},{"type":112,"tag":133,"props":1475,"children":1476},{"class":135,"line":153},[1477,1481,1485,1489,1494],{"type":112,"tag":133,"props":1478,"children":1479},{"style":147},[1480],{"type":143,"value":508},{"type":112,"tag":133,"props":1482,"children":1483},{"style":176},[1484],{"type":143,"value":367},{"type":112,"tag":133,"props":1486,"children":1487},{"style":176},[1488],{"type":143,"value":331},{"type":112,"tag":133,"props":1490,"children":1491},{"style":222},[1492],{"type":143,"value":1493},"litestar-routing-example",{"type":112,"tag":133,"props":1495,"children":1496},{"style":176},[1497],{"type":143,"value":526},{"type":112,"tag":133,"props":1499,"children":1500},{"class":135,"line":187},[1501,1505,1509,1513,1517],{"type":112,"tag":133,"props":1502,"children":1503},{"style":147},[1504],{"type":143,"value":534},{"type":112,"tag":133,"props":1506,"children":1507},{"style":176},[1508],{"type":143,"value":367},{"type":112,"tag":133,"props":1510,"children":1511},{"style":176},[1512],{"type":143,"value":331},{"type":112,"tag":133,"props":1514,"children":1515},{"style":222},[1516],{"type":143,"value":547},{"type":112,"tag":133,"props":1518,"children":1519},{"style":176},[1520],{"type":143,"value":526},{"type":112,"tag":133,"props":1522,"children":1523},{"class":135,"line":197},[1524,1528,1532,1536,1541],{"type":112,"tag":133,"props":1525,"children":1526},{"style":147},[1527],{"type":143,"value":559},{"type":112,"tag":133,"props":1529,"children":1530},{"style":176},[1531],{"type":143,"value":367},{"type":112,"tag":133,"props":1533,"children":1534},{"style":176},[1535],{"type":143,"value":331},{"type":112,"tag":133,"props":1537,"children":1538},{"style":222},[1539],{"type":143,"value":1540},"A Litestar routing example",{"type":112,"tag":133,"props":1542,"children":1543},{"style":176},[1544],{"type":143,"value":526},{"type":112,"tag":133,"props":1546,"children":1547},{"class":135,"line":237},[1548,1552,1556,1560,1564],{"type":112,"tag":133,"props":1549,"children":1550},{"style":147},[1551],{"type":143,"value":584},{"type":112,"tag":133,"props":1553,"children":1554},{"style":176},[1555],{"type":143,"value":367},{"type":112,"tag":133,"props":1557,"children":1558},{"style":176},[1559],{"type":143,"value":331},{"type":112,"tag":133,"props":1561,"children":1562},{"style":222},[1563],{"type":143,"value":597},{"type":112,"tag":133,"props":1565,"children":1566},{"style":176},[1567],{"type":143,"value":526},{"type":112,"tag":133,"props":1569,"children":1570},{"class":135,"line":297},[1571,1575,1579,1583,1587],{"type":112,"tag":133,"props":1572,"children":1573},{"style":147},[1574],{"type":143,"value":609},{"type":112,"tag":133,"props":1576,"children":1577},{"style":176},[1578],{"type":143,"value":367},{"type":112,"tag":133,"props":1580,"children":1581},{"style":176},[1582],{"type":143,"value":331},{"type":112,"tag":133,"props":1584,"children":1585},{"style":222},[1586],{"type":143,"value":622},{"type":112,"tag":133,"props":1588,"children":1589},{"style":176},[1590],{"type":143,"value":526},{"type":112,"tag":133,"props":1592,"children":1593},{"class":135,"line":348},[1594,1598,1602],{"type":112,"tag":133,"props":1595,"children":1596},{"style":147},[1597],{"type":143,"value":634},{"type":112,"tag":133,"props":1599,"children":1600},{"style":176},[1601],{"type":143,"value":367},{"type":112,"tag":133,"props":1603,"children":1604},{"style":176},[1605],{"type":143,"value":643},{"type":112,"tag":133,"props":1607,"children":1608},{"class":135,"line":356},[1609,1613,1617,1621],{"type":112,"tag":133,"props":1610,"children":1611},{"style":176},[1612],{"type":143,"value":651},{"type":112,"tag":133,"props":1614,"children":1615},{"style":222},[1616],{"type":143,"value":656},{"type":112,"tag":133,"props":1618,"children":1619},{"style":176},[1620],{"type":143,"value":219},{"type":112,"tag":133,"props":1622,"children":1623},{"style":176},[1624],{"type":143,"value":665},{"type":112,"tag":133,"props":1626,"children":1627},{"class":135,"line":399},[1628],{"type":112,"tag":133,"props":1629,"children":1630},{"style":176},[1631],{"type":143,"value":500},{"type":112,"tag":674,"props":1633,"children":1634},{},[1635],{"type":143,"value":678},{"title":107,"searchDepth":153,"depth":153,"links":1637},[],{"title":1639,"icon":1640,"content":1641},"Websockets","i-lucide-unplug",{"data":1642,"body":1643,"toc":2722},{"title":107,"description":107},{"type":109,"children":1644},[1645,2718],{"type":112,"tag":113,"props":1646,"children":1649},{"className":1647,"default-value":1648},[116,117,118],"main_ws_listener.py",[1650,2113,2538],{"type":112,"tag":122,"props":1651,"children":1653},{"className":124,"code":1652,"filename":1648,"language":126,"meta":107,"style":107},"import dataclasses\nimport datetime\n\nfrom litestar import Litestar, websocket_listener\n\n@dataclasses.dataclass()\nclass Message:\n    data: dict[str, str]\n    timestamp: datetime.datetime\n\n@websocket_listener(\"\u002Fecho\")\nasync def echo_handler(data: dict[str, str]) -> Message:\n    \"\"\"\n    Accept WebSocket connections on '\u002Fecho', and then for \n    every incoming message:\n    - Parse its content as JSON\n    - Call 'echo_handler', passing the data to the 'data' parameter\n    - Serialize the returned 'Message' dataclass to JSON\n    - Send a WebSocket message back\n    \"\"\"\n    return Message(data=data, timestamp=datetime.datetime.now())\n\napp = Litestar([echo_handler])\n",[1654],{"type":112,"tag":129,"props":1655,"children":1656},{"__ignoreMap":107},[1657,1669,1681,1688,1716,1723,1749,1765,1801,1828,1835,1868,1935,1944,1954,1963,1972,1981,1990,1999,2007,2075,2083],{"type":112,"tag":133,"props":1658,"children":1659},{"class":135,"line":136},[1660,1664],{"type":112,"tag":133,"props":1661,"children":1662},{"style":140},[1663],{"type":143,"value":144},{"type":112,"tag":133,"props":1665,"children":1666},{"style":147},[1667],{"type":143,"value":1668}," dataclasses\n",{"type":112,"tag":133,"props":1670,"children":1671},{"class":135,"line":153},[1672,1676],{"type":112,"tag":133,"props":1673,"children":1674},{"style":140},[1675],{"type":143,"value":144},{"type":112,"tag":133,"props":1677,"children":1678},{"style":147},[1679],{"type":143,"value":1680}," datetime\n",{"type":112,"tag":133,"props":1682,"children":1683},{"class":135,"line":187},[1684],{"type":112,"tag":133,"props":1685,"children":1686},{"emptyLinePlaceholder":191},[1687],{"type":143,"value":194},{"type":112,"tag":133,"props":1689,"children":1690},{"class":135,"line":197},[1691,1695,1699,1703,1707,1711],{"type":112,"tag":133,"props":1692,"children":1693},{"style":140},[1694],{"type":143,"value":159},{"type":112,"tag":133,"props":1696,"children":1697},{"style":147},[1698],{"type":143,"value":164},{"type":112,"tag":133,"props":1700,"children":1701},{"style":140},[1702],{"type":143,"value":144},{"type":112,"tag":133,"props":1704,"children":1705},{"style":147},[1706],{"type":143,"value":173},{"type":112,"tag":133,"props":1708,"children":1709},{"style":176},[1710],{"type":143,"value":179},{"type":112,"tag":133,"props":1712,"children":1713},{"style":147},[1714],{"type":143,"value":1715}," websocket_listener\n",{"type":112,"tag":133,"props":1717,"children":1718},{"class":135,"line":237},[1719],{"type":112,"tag":133,"props":1720,"children":1721},{"emptyLinePlaceholder":191},[1722],{"type":143,"value":194},{"type":112,"tag":133,"props":1724,"children":1725},{"class":135,"line":297},[1726,1730,1735,1739,1744],{"type":112,"tag":133,"props":1727,"children":1728},{"style":176},[1729],{"type":143,"value":203},{"type":112,"tag":133,"props":1731,"children":1732},{"style":206},[1733],{"type":143,"value":1734},"dataclasses",{"type":112,"tag":133,"props":1736,"children":1737},{"style":176},[1738],{"type":143,"value":455},{"type":112,"tag":133,"props":1740,"children":1741},{"style":206},[1742],{"type":143,"value":1743},"dataclass",{"type":112,"tag":133,"props":1745,"children":1746},{"style":176},[1747],{"type":143,"value":1748},"()\n",{"type":112,"tag":133,"props":1750,"children":1751},{"class":135,"line":348},[1752,1756,1761],{"type":112,"tag":133,"props":1753,"children":1754},{"style":241},[1755],{"type":143,"value":742},{"type":112,"tag":133,"props":1757,"children":1758},{"style":277},[1759],{"type":143,"value":1760}," Message",{"type":112,"tag":133,"props":1762,"children":1763},{"style":176},[1764],{"type":143,"value":441},{"type":112,"tag":133,"props":1766,"children":1767},{"class":135,"line":356},[1768,1773,1777,1781,1785,1789,1793,1797],{"type":112,"tag":133,"props":1769,"children":1770},{"style":147},[1771],{"type":143,"value":1772},"    data",{"type":112,"tag":133,"props":1774,"children":1775},{"style":176},[1776],{"type":143,"value":326},{"type":112,"tag":133,"props":1778,"children":1779},{"style":147},[1780],{"type":143,"value":269},{"type":112,"tag":133,"props":1782,"children":1783},{"style":176},[1784],{"type":143,"value":274},{"type":112,"tag":133,"props":1786,"children":1787},{"style":277},[1788],{"type":143,"value":280},{"type":112,"tag":133,"props":1790,"children":1791},{"style":176},[1792],{"type":143,"value":179},{"type":112,"tag":133,"props":1794,"children":1795},{"style":277},[1796],{"type":143,"value":289},{"type":112,"tag":133,"props":1798,"children":1799},{"style":176},[1800],{"type":143,"value":500},{"type":112,"tag":133,"props":1802,"children":1803},{"class":135,"line":399},[1804,1809,1813,1818,1822],{"type":112,"tag":133,"props":1805,"children":1806},{"style":147},[1807],{"type":143,"value":1808},"    timestamp",{"type":112,"tag":133,"props":1810,"children":1811},{"style":176},[1812],{"type":143,"value":326},{"type":112,"tag":133,"props":1814,"children":1815},{"style":147},[1816],{"type":143,"value":1817}," datetime",{"type":112,"tag":133,"props":1819,"children":1820},{"style":176},[1821],{"type":143,"value":455},{"type":112,"tag":133,"props":1823,"children":1825},{"style":1824},"--shiki-default:#E53935;--shiki-dark:#F07178",[1826],{"type":143,"value":1827},"datetime\n",{"type":112,"tag":133,"props":1829,"children":1830},{"class":135,"line":407},[1831],{"type":112,"tag":133,"props":1832,"children":1833},{"emptyLinePlaceholder":191},[1834],{"type":143,"value":194},{"type":112,"tag":133,"props":1836,"children":1837},{"class":135,"line":444},[1838,1842,1847,1851,1855,1860,1864],{"type":112,"tag":133,"props":1839,"children":1840},{"style":176},[1841],{"type":143,"value":203},{"type":112,"tag":133,"props":1843,"children":1844},{"style":206},[1845],{"type":143,"value":1846},"websocket_listener",{"type":112,"tag":133,"props":1848,"children":1849},{"style":176},[1850],{"type":143,"value":214},{"type":112,"tag":133,"props":1852,"children":1853},{"style":176},[1854],{"type":143,"value":219},{"type":112,"tag":133,"props":1856,"children":1857},{"style":222},[1858],{"type":143,"value":1859},"\u002Fecho",{"type":112,"tag":133,"props":1861,"children":1862},{"style":176},[1863],{"type":143,"value":219},{"type":112,"tag":133,"props":1865,"children":1866},{"style":176},[1867],{"type":143,"value":234},{"type":112,"tag":133,"props":1869,"children":1871},{"class":135,"line":1870},12,[1872,1876,1880,1885,1889,1894,1898,1902,1906,1910,1914,1918,1923,1927,1931],{"type":112,"tag":133,"props":1873,"children":1874},{"style":241},[1875],{"type":143,"value":244},{"type":112,"tag":133,"props":1877,"children":1878},{"style":241},[1879],{"type":143,"value":249},{"type":112,"tag":133,"props":1881,"children":1882},{"style":206},[1883],{"type":143,"value":1884}," echo_handler",{"type":112,"tag":133,"props":1886,"children":1887},{"style":176},[1888],{"type":143,"value":214},{"type":112,"tag":133,"props":1890,"children":1891},{"style":378},[1892],{"type":143,"value":1893},"data",{"type":112,"tag":133,"props":1895,"children":1896},{"style":176},[1897],{"type":143,"value":326},{"type":112,"tag":133,"props":1899,"children":1900},{"style":147},[1901],{"type":143,"value":269},{"type":112,"tag":133,"props":1903,"children":1904},{"style":176},[1905],{"type":143,"value":274},{"type":112,"tag":133,"props":1907,"children":1908},{"style":277},[1909],{"type":143,"value":280},{"type":112,"tag":133,"props":1911,"children":1912},{"style":176},[1913],{"type":143,"value":179},{"type":112,"tag":133,"props":1915,"children":1916},{"style":277},[1917],{"type":143,"value":289},{"type":112,"tag":133,"props":1919,"children":1920},{"style":176},[1921],{"type":143,"value":1922},"])",{"type":112,"tag":133,"props":1924,"children":1925},{"style":176},[1926],{"type":143,"value":264},{"type":112,"tag":133,"props":1928,"children":1929},{"style":147},[1930],{"type":143,"value":1760},{"type":112,"tag":133,"props":1932,"children":1933},{"style":176},[1934],{"type":143,"value":441},{"type":112,"tag":133,"props":1936,"children":1938},{"class":135,"line":1937},13,[1939],{"type":112,"tag":133,"props":1940,"children":1941},{"style":140},[1942],{"type":143,"value":1943},"    \"\"\"\n",{"type":112,"tag":133,"props":1945,"children":1947},{"class":135,"line":1946},14,[1948],{"type":112,"tag":133,"props":1949,"children":1951},{"style":1950},"--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1952],{"type":143,"value":1953},"    Accept WebSocket connections on '\u002Fecho', and then for \n",{"type":112,"tag":133,"props":1955,"children":1957},{"class":135,"line":1956},15,[1958],{"type":112,"tag":133,"props":1959,"children":1960},{"style":1950},[1961],{"type":143,"value":1962},"    every incoming message:\n",{"type":112,"tag":133,"props":1964,"children":1966},{"class":135,"line":1965},16,[1967],{"type":112,"tag":133,"props":1968,"children":1969},{"style":1950},[1970],{"type":143,"value":1971},"    - Parse its content as JSON\n",{"type":112,"tag":133,"props":1973,"children":1975},{"class":135,"line":1974},17,[1976],{"type":112,"tag":133,"props":1977,"children":1978},{"style":1950},[1979],{"type":143,"value":1980},"    - Call 'echo_handler', passing the data to the 'data' parameter\n",{"type":112,"tag":133,"props":1982,"children":1984},{"class":135,"line":1983},18,[1985],{"type":112,"tag":133,"props":1986,"children":1987},{"style":1950},[1988],{"type":143,"value":1989},"    - Serialize the returned 'Message' dataclass to JSON\n",{"type":112,"tag":133,"props":1991,"children":1993},{"class":135,"line":1992},19,[1994],{"type":112,"tag":133,"props":1995,"children":1996},{"style":1950},[1997],{"type":143,"value":1998},"    - Send a WebSocket message back\n",{"type":112,"tag":133,"props":2000,"children":2002},{"class":135,"line":2001},20,[2003],{"type":112,"tag":133,"props":2004,"children":2005},{"style":140},[2006],{"type":143,"value":1943},{"type":112,"tag":133,"props":2008,"children":2010},{"class":135,"line":2009},21,[2011,2015,2019,2023,2027,2031,2035,2039,2044,2048,2053,2057,2061,2065,2070],{"type":112,"tag":133,"props":2012,"children":2013},{"style":140},[2014],{"type":143,"value":303},{"type":112,"tag":133,"props":2016,"children":2017},{"style":206},[2018],{"type":143,"value":1760},{"type":112,"tag":133,"props":2020,"children":2021},{"style":176},[2022],{"type":143,"value":214},{"type":112,"tag":133,"props":2024,"children":2025},{"style":378},[2026],{"type":143,"value":1893},{"type":112,"tag":133,"props":2028,"children":2029},{"style":176},[2030],{"type":143,"value":367},{"type":112,"tag":133,"props":2032,"children":2033},{"style":206},[2034],{"type":143,"value":1893},{"type":112,"tag":133,"props":2036,"children":2037},{"style":176},[2038],{"type":143,"value":179},{"type":112,"tag":133,"props":2040,"children":2041},{"style":378},[2042],{"type":143,"value":2043}," timestamp",{"type":112,"tag":133,"props":2045,"children":2046},{"style":176},[2047],{"type":143,"value":367},{"type":112,"tag":133,"props":2049,"children":2050},{"style":206},[2051],{"type":143,"value":2052},"datetime",{"type":112,"tag":133,"props":2054,"children":2055},{"style":176},[2056],{"type":143,"value":455},{"type":112,"tag":133,"props":2058,"children":2059},{"style":1824},[2060],{"type":143,"value":2052},{"type":112,"tag":133,"props":2062,"children":2063},{"style":176},[2064],{"type":143,"value":455},{"type":112,"tag":133,"props":2066,"children":2067},{"style":206},[2068],{"type":143,"value":2069},"now",{"type":112,"tag":133,"props":2071,"children":2072},{"style":176},[2073],{"type":143,"value":2074},"())\n",{"type":112,"tag":133,"props":2076,"children":2078},{"class":135,"line":2077},22,[2079],{"type":112,"tag":133,"props":2080,"children":2081},{"emptyLinePlaceholder":191},[2082],{"type":143,"value":194},{"type":112,"tag":133,"props":2084,"children":2086},{"class":135,"line":2085},23,[2087,2091,2095,2099,2104,2109],{"type":112,"tag":133,"props":2088,"children":2089},{"style":147},[2090],{"type":143,"value":362},{"type":112,"tag":133,"props":2092,"children":2093},{"style":176},[2094],{"type":143,"value":367},{"type":112,"tag":133,"props":2096,"children":2097},{"style":206},[2098],{"type":143,"value":173},{"type":112,"tag":133,"props":2100,"children":2101},{"style":176},[2102],{"type":143,"value":2103},"([",{"type":112,"tag":133,"props":2105,"children":2106},{"style":206},[2107],{"type":143,"value":2108},"echo_handler",{"type":112,"tag":133,"props":2110,"children":2111},{"style":176},[2112],{"type":143,"value":396},{"type":112,"tag":122,"props":2114,"children":2117},{"className":124,"code":2115,"filename":2116,"language":126,"meta":107,"style":107},"import asyncio\nimport dataclasses\nimport datetime\nfrom collections.abc import AsyncGenerator\n\nfrom litestar import Litestar, websocket_stream\n\n@dataclasses.dataclass()\nclass Ping:\n    timestamp: datetime.datetime\n\n@websocket_stream(\"\u002Fping\")\nasync def ping() -> AsyncGenerator[Ping, None]:\n    \"\"\"\n    Accept WebSocket connections on '\u002Fping' and continue to\n    send a 'Ping' message to the client\n    \"\"\"\n    while True:\n        yield Ping(timestamp=datetime.datetime.now())\n        await asyncio.sleep(0.5)\n\napp = Litestar([ping])\n","main_ws_stream.py",[2118],{"type":112,"tag":129,"props":2119,"children":2120},{"__ignoreMap":107},[2121,2133,2144,2155,2185,2192,2220,2227,2250,2266,2289,2296,2329,2376,2383,2391,2399,2406,2419,2468,2503,2510],{"type":112,"tag":133,"props":2122,"children":2123},{"class":135,"line":136},[2124,2128],{"type":112,"tag":133,"props":2125,"children":2126},{"style":140},[2127],{"type":143,"value":144},{"type":112,"tag":133,"props":2129,"children":2130},{"style":147},[2131],{"type":143,"value":2132}," asyncio\n",{"type":112,"tag":133,"props":2134,"children":2135},{"class":135,"line":153},[2136,2140],{"type":112,"tag":133,"props":2137,"children":2138},{"style":140},[2139],{"type":143,"value":144},{"type":112,"tag":133,"props":2141,"children":2142},{"style":147},[2143],{"type":143,"value":1668},{"type":112,"tag":133,"props":2145,"children":2146},{"class":135,"line":187},[2147,2151],{"type":112,"tag":133,"props":2148,"children":2149},{"style":140},[2150],{"type":143,"value":144},{"type":112,"tag":133,"props":2152,"children":2153},{"style":147},[2154],{"type":143,"value":1680},{"type":112,"tag":133,"props":2156,"children":2157},{"class":135,"line":197},[2158,2162,2167,2171,2176,2180],{"type":112,"tag":133,"props":2159,"children":2160},{"style":140},[2161],{"type":143,"value":159},{"type":112,"tag":133,"props":2163,"children":2164},{"style":147},[2165],{"type":143,"value":2166}," collections",{"type":112,"tag":133,"props":2168,"children":2169},{"style":176},[2170],{"type":143,"value":455},{"type":112,"tag":133,"props":2172,"children":2173},{"style":147},[2174],{"type":143,"value":2175},"abc ",{"type":112,"tag":133,"props":2177,"children":2178},{"style":140},[2179],{"type":143,"value":144},{"type":112,"tag":133,"props":2181,"children":2182},{"style":147},[2183],{"type":143,"value":2184}," AsyncGenerator\n",{"type":112,"tag":133,"props":2186,"children":2187},{"class":135,"line":237},[2188],{"type":112,"tag":133,"props":2189,"children":2190},{"emptyLinePlaceholder":191},[2191],{"type":143,"value":194},{"type":112,"tag":133,"props":2193,"children":2194},{"class":135,"line":297},[2195,2199,2203,2207,2211,2215],{"type":112,"tag":133,"props":2196,"children":2197},{"style":140},[2198],{"type":143,"value":159},{"type":112,"tag":133,"props":2200,"children":2201},{"style":147},[2202],{"type":143,"value":164},{"type":112,"tag":133,"props":2204,"children":2205},{"style":140},[2206],{"type":143,"value":144},{"type":112,"tag":133,"props":2208,"children":2209},{"style":147},[2210],{"type":143,"value":173},{"type":112,"tag":133,"props":2212,"children":2213},{"style":176},[2214],{"type":143,"value":179},{"type":112,"tag":133,"props":2216,"children":2217},{"style":147},[2218],{"type":143,"value":2219}," websocket_stream\n",{"type":112,"tag":133,"props":2221,"children":2222},{"class":135,"line":348},[2223],{"type":112,"tag":133,"props":2224,"children":2225},{"emptyLinePlaceholder":191},[2226],{"type":143,"value":194},{"type":112,"tag":133,"props":2228,"children":2229},{"class":135,"line":356},[2230,2234,2238,2242,2246],{"type":112,"tag":133,"props":2231,"children":2232},{"style":176},[2233],{"type":143,"value":203},{"type":112,"tag":133,"props":2235,"children":2236},{"style":206},[2237],{"type":143,"value":1734},{"type":112,"tag":133,"props":2239,"children":2240},{"style":176},[2241],{"type":143,"value":455},{"type":112,"tag":133,"props":2243,"children":2244},{"style":206},[2245],{"type":143,"value":1743},{"type":112,"tag":133,"props":2247,"children":2248},{"style":176},[2249],{"type":143,"value":1748},{"type":112,"tag":133,"props":2251,"children":2252},{"class":135,"line":399},[2253,2257,2262],{"type":112,"tag":133,"props":2254,"children":2255},{"style":241},[2256],{"type":143,"value":742},{"type":112,"tag":133,"props":2258,"children":2259},{"style":277},[2260],{"type":143,"value":2261}," Ping",{"type":112,"tag":133,"props":2263,"children":2264},{"style":176},[2265],{"type":143,"value":441},{"type":112,"tag":133,"props":2267,"children":2268},{"class":135,"line":407},[2269,2273,2277,2281,2285],{"type":112,"tag":133,"props":2270,"children":2271},{"style":147},[2272],{"type":143,"value":1808},{"type":112,"tag":133,"props":2274,"children":2275},{"style":176},[2276],{"type":143,"value":326},{"type":112,"tag":133,"props":2278,"children":2279},{"style":147},[2280],{"type":143,"value":1817},{"type":112,"tag":133,"props":2282,"children":2283},{"style":176},[2284],{"type":143,"value":455},{"type":112,"tag":133,"props":2286,"children":2287},{"style":1824},[2288],{"type":143,"value":1827},{"type":112,"tag":133,"props":2290,"children":2291},{"class":135,"line":444},[2292],{"type":112,"tag":133,"props":2293,"children":2294},{"emptyLinePlaceholder":191},[2295],{"type":143,"value":194},{"type":112,"tag":133,"props":2297,"children":2298},{"class":135,"line":1870},[2299,2303,2308,2312,2316,2321,2325],{"type":112,"tag":133,"props":2300,"children":2301},{"style":176},[2302],{"type":143,"value":203},{"type":112,"tag":133,"props":2304,"children":2305},{"style":206},[2306],{"type":143,"value":2307},"websocket_stream",{"type":112,"tag":133,"props":2309,"children":2310},{"style":176},[2311],{"type":143,"value":214},{"type":112,"tag":133,"props":2313,"children":2314},{"style":176},[2315],{"type":143,"value":219},{"type":112,"tag":133,"props":2317,"children":2318},{"style":222},[2319],{"type":143,"value":2320},"\u002Fping",{"type":112,"tag":133,"props":2322,"children":2323},{"style":176},[2324],{"type":143,"value":219},{"type":112,"tag":133,"props":2326,"children":2327},{"style":176},[2328],{"type":143,"value":234},{"type":112,"tag":133,"props":2330,"children":2331},{"class":135,"line":1937},[2332,2336,2340,2345,2349,2353,2358,2362,2367,2371],{"type":112,"tag":133,"props":2333,"children":2334},{"style":241},[2335],{"type":143,"value":244},{"type":112,"tag":133,"props":2337,"children":2338},{"style":241},[2339],{"type":143,"value":249},{"type":112,"tag":133,"props":2341,"children":2342},{"style":206},[2343],{"type":143,"value":2344}," ping",{"type":112,"tag":133,"props":2346,"children":2347},{"style":176},[2348],{"type":143,"value":259},{"type":112,"tag":133,"props":2350,"children":2351},{"style":176},[2352],{"type":143,"value":264},{"type":112,"tag":133,"props":2354,"children":2355},{"style":147},[2356],{"type":143,"value":2357}," AsyncGenerator",{"type":112,"tag":133,"props":2359,"children":2360},{"style":176},[2361],{"type":143,"value":274},{"type":112,"tag":133,"props":2363,"children":2364},{"style":147},[2365],{"type":143,"value":2366},"Ping",{"type":112,"tag":133,"props":2368,"children":2369},{"style":176},[2370],{"type":143,"value":179},{"type":112,"tag":133,"props":2372,"children":2373},{"style":176},[2374],{"type":143,"value":2375}," None]:\n",{"type":112,"tag":133,"props":2377,"children":2378},{"class":135,"line":1946},[2379],{"type":112,"tag":133,"props":2380,"children":2381},{"style":140},[2382],{"type":143,"value":1943},{"type":112,"tag":133,"props":2384,"children":2385},{"class":135,"line":1956},[2386],{"type":112,"tag":133,"props":2387,"children":2388},{"style":1950},[2389],{"type":143,"value":2390},"    Accept WebSocket connections on '\u002Fping' and continue to\n",{"type":112,"tag":133,"props":2392,"children":2393},{"class":135,"line":1965},[2394],{"type":112,"tag":133,"props":2395,"children":2396},{"style":1950},[2397],{"type":143,"value":2398},"    send a 'Ping' message to the client\n",{"type":112,"tag":133,"props":2400,"children":2401},{"class":135,"line":1974},[2402],{"type":112,"tag":133,"props":2403,"children":2404},{"style":140},[2405],{"type":143,"value":1943},{"type":112,"tag":133,"props":2407,"children":2408},{"class":135,"line":1983},[2409,2414],{"type":112,"tag":133,"props":2410,"children":2411},{"style":140},[2412],{"type":143,"value":2413},"    while",{"type":112,"tag":133,"props":2415,"children":2416},{"style":176},[2417],{"type":143,"value":2418}," True:\n",{"type":112,"tag":133,"props":2420,"children":2421},{"class":135,"line":1992},[2422,2427,2431,2435,2440,2444,2448,2452,2456,2460,2464],{"type":112,"tag":133,"props":2423,"children":2424},{"style":140},[2425],{"type":143,"value":2426},"        yield",{"type":112,"tag":133,"props":2428,"children":2429},{"style":206},[2430],{"type":143,"value":2261},{"type":112,"tag":133,"props":2432,"children":2433},{"style":176},[2434],{"type":143,"value":214},{"type":112,"tag":133,"props":2436,"children":2437},{"style":378},[2438],{"type":143,"value":2439},"timestamp",{"type":112,"tag":133,"props":2441,"children":2442},{"style":176},[2443],{"type":143,"value":367},{"type":112,"tag":133,"props":2445,"children":2446},{"style":206},[2447],{"type":143,"value":2052},{"type":112,"tag":133,"props":2449,"children":2450},{"style":176},[2451],{"type":143,"value":455},{"type":112,"tag":133,"props":2453,"children":2454},{"style":1824},[2455],{"type":143,"value":2052},{"type":112,"tag":133,"props":2457,"children":2458},{"style":176},[2459],{"type":143,"value":455},{"type":112,"tag":133,"props":2461,"children":2462},{"style":206},[2463],{"type":143,"value":2069},{"type":112,"tag":133,"props":2465,"children":2466},{"style":176},[2467],{"type":143,"value":2074},{"type":112,"tag":133,"props":2469,"children":2470},{"class":135,"line":2001},[2471,2476,2481,2485,2490,2494,2499],{"type":112,"tag":133,"props":2472,"children":2473},{"style":140},[2474],{"type":143,"value":2475},"        await",{"type":112,"tag":133,"props":2477,"children":2478},{"style":147},[2479],{"type":143,"value":2480}," asyncio",{"type":112,"tag":133,"props":2482,"children":2483},{"style":176},[2484],{"type":143,"value":455},{"type":112,"tag":133,"props":2486,"children":2487},{"style":206},[2488],{"type":143,"value":2489},"sleep",{"type":112,"tag":133,"props":2491,"children":2492},{"style":176},[2493],{"type":143,"value":214},{"type":112,"tag":133,"props":2495,"children":2496},{"style":820},[2497],{"type":143,"value":2498},"0.5",{"type":112,"tag":133,"props":2500,"children":2501},{"style":176},[2502],{"type":143,"value":234},{"type":112,"tag":133,"props":2504,"children":2505},{"class":135,"line":2009},[2506],{"type":112,"tag":133,"props":2507,"children":2508},{"emptyLinePlaceholder":191},[2509],{"type":143,"value":194},{"type":112,"tag":133,"props":2511,"children":2512},{"class":135,"line":2077},[2513,2517,2521,2525,2529,2534],{"type":112,"tag":133,"props":2514,"children":2515},{"style":147},[2516],{"type":143,"value":362},{"type":112,"tag":133,"props":2518,"children":2519},{"style":176},[2520],{"type":143,"value":367},{"type":112,"tag":133,"props":2522,"children":2523},{"style":206},[2524],{"type":143,"value":173},{"type":112,"tag":133,"props":2526,"children":2527},{"style":176},[2528],{"type":143,"value":2103},{"type":112,"tag":133,"props":2530,"children":2531},{"style":206},[2532],{"type":143,"value":2533},"ping",{"type":112,"tag":133,"props":2535,"children":2536},{"style":176},[2537],{"type":143,"value":396},{"type":112,"tag":122,"props":2539,"children":2541},{"className":476,"code":2540,"filename":478,"language":479,"meta":107,"style":107},"[project]\nname = \"litestar-websockets-echo\"\nversion = \"0.1.0\"\ndescription = \"A Litestar websockets stream and listener example\"\nreadme = \"README.md\"\nrequires-python = \">=3.13\"\ndependencies = [\n    \"litestar[standard]>=2.17.0\",\n]\n",[2542],{"type":112,"tag":129,"props":2543,"children":2544},{"__ignoreMap":107},[2545,2560,2584,2607,2631,2654,2677,2692,2711],{"type":112,"tag":133,"props":2546,"children":2547},{"class":135,"line":136},[2548,2552,2556],{"type":112,"tag":133,"props":2549,"children":2550},{"style":176},[2551],{"type":143,"value":274},{"type":112,"tag":133,"props":2553,"children":2554},{"style":277},[2555],{"type":143,"value":495},{"type":112,"tag":133,"props":2557,"children":2558},{"style":176},[2559],{"type":143,"value":500},{"type":112,"tag":133,"props":2561,"children":2562},{"class":135,"line":153},[2563,2567,2571,2575,2580],{"type":112,"tag":133,"props":2564,"children":2565},{"style":147},[2566],{"type":143,"value":508},{"type":112,"tag":133,"props":2568,"children":2569},{"style":176},[2570],{"type":143,"value":367},{"type":112,"tag":133,"props":2572,"children":2573},{"style":176},[2574],{"type":143,"value":331},{"type":112,"tag":133,"props":2576,"children":2577},{"style":222},[2578],{"type":143,"value":2579},"litestar-websockets-echo",{"type":112,"tag":133,"props":2581,"children":2582},{"style":176},[2583],{"type":143,"value":526},{"type":112,"tag":133,"props":2585,"children":2586},{"class":135,"line":187},[2587,2591,2595,2599,2603],{"type":112,"tag":133,"props":2588,"children":2589},{"style":147},[2590],{"type":143,"value":534},{"type":112,"tag":133,"props":2592,"children":2593},{"style":176},[2594],{"type":143,"value":367},{"type":112,"tag":133,"props":2596,"children":2597},{"style":176},[2598],{"type":143,"value":331},{"type":112,"tag":133,"props":2600,"children":2601},{"style":222},[2602],{"type":143,"value":547},{"type":112,"tag":133,"props":2604,"children":2605},{"style":176},[2606],{"type":143,"value":526},{"type":112,"tag":133,"props":2608,"children":2609},{"class":135,"line":197},[2610,2614,2618,2622,2627],{"type":112,"tag":133,"props":2611,"children":2612},{"style":147},[2613],{"type":143,"value":559},{"type":112,"tag":133,"props":2615,"children":2616},{"style":176},[2617],{"type":143,"value":367},{"type":112,"tag":133,"props":2619,"children":2620},{"style":176},[2621],{"type":143,"value":331},{"type":112,"tag":133,"props":2623,"children":2624},{"style":222},[2625],{"type":143,"value":2626},"A Litestar websockets stream and listener example",{"type":112,"tag":133,"props":2628,"children":2629},{"style":176},[2630],{"type":143,"value":526},{"type":112,"tag":133,"props":2632,"children":2633},{"class":135,"line":237},[2634,2638,2642,2646,2650],{"type":112,"tag":133,"props":2635,"children":2636},{"style":147},[2637],{"type":143,"value":584},{"type":112,"tag":133,"props":2639,"children":2640},{"style":176},[2641],{"type":143,"value":367},{"type":112,"tag":133,"props":2643,"children":2644},{"style":176},[2645],{"type":143,"value":331},{"type":112,"tag":133,"props":2647,"children":2648},{"style":222},[2649],{"type":143,"value":597},{"type":112,"tag":133,"props":2651,"children":2652},{"style":176},[2653],{"type":143,"value":526},{"type":112,"tag":133,"props":2655,"children":2656},{"class":135,"line":297},[2657,2661,2665,2669,2673],{"type":112,"tag":133,"props":2658,"children":2659},{"style":147},[2660],{"type":143,"value":609},{"type":112,"tag":133,"props":2662,"children":2663},{"style":176},[2664],{"type":143,"value":367},{"type":112,"tag":133,"props":2666,"children":2667},{"style":176},[2668],{"type":143,"value":331},{"type":112,"tag":133,"props":2670,"children":2671},{"style":222},[2672],{"type":143,"value":622},{"type":112,"tag":133,"props":2674,"children":2675},{"style":176},[2676],{"type":143,"value":526},{"type":112,"tag":133,"props":2678,"children":2679},{"class":135,"line":348},[2680,2684,2688],{"type":112,"tag":133,"props":2681,"children":2682},{"style":147},[2683],{"type":143,"value":634},{"type":112,"tag":133,"props":2685,"children":2686},{"style":176},[2687],{"type":143,"value":367},{"type":112,"tag":133,"props":2689,"children":2690},{"style":176},[2691],{"type":143,"value":643},{"type":112,"tag":133,"props":2693,"children":2694},{"class":135,"line":356},[2695,2699,2703,2707],{"type":112,"tag":133,"props":2696,"children":2697},{"style":176},[2698],{"type":143,"value":651},{"type":112,"tag":133,"props":2700,"children":2701},{"style":222},[2702],{"type":143,"value":656},{"type":112,"tag":133,"props":2704,"children":2705},{"style":176},[2706],{"type":143,"value":219},{"type":112,"tag":133,"props":2708,"children":2709},{"style":176},[2710],{"type":143,"value":665},{"type":112,"tag":133,"props":2712,"children":2713},{"class":135,"line":399},[2714],{"type":112,"tag":133,"props":2715,"children":2716},{"style":176},[2717],{"type":143,"value":500},{"type":112,"tag":674,"props":2719,"children":2720},{},[2721],{"type":143,"value":678},{"title":107,"searchDepth":153,"depth":153,"links":2723},[],{"title":2725,"icon":2726,"content":2727},"DTOs","i-lucide-wand-sparkles",{"data":2728,"body":2729,"toc":3573},{"title":107,"description":107},{"type":109,"children":2730},[2731,3569],{"type":112,"tag":113,"props":2732,"children":2734},{"className":2733,"default-value":119},[116,117,118],[2735,3003,3393],{"type":112,"tag":122,"props":2736,"children":2739},{"className":124,"code":2737,"filename":2738,"language":126,"meta":107,"style":107},"from litestar.dto.msgspec_dto import MsgspecDTO\nfrom litestar.dto import DTOConfig\nfrom msgspec import Struct\n\nclass User(Struct):\n    name: str\n    email: str\n    password: str\n\nclass UserResponseDTO(MsgspecDTO[User]):\n    config = DTOConfig(exclude={\"password\"})\n","schema.py",[2740],{"type":112,"tag":129,"props":2741,"children":2742},{"__ignoreMap":107},[2743,2781,2810,2831,2838,2863,2880,2896,2912,2919,2954],{"type":112,"tag":133,"props":2744,"children":2745},{"class":135,"line":136},[2746,2750,2754,2758,2763,2767,2772,2776],{"type":112,"tag":133,"props":2747,"children":2748},{"style":140},[2749],{"type":143,"value":159},{"type":112,"tag":133,"props":2751,"children":2752},{"style":147},[2753],{"type":143,"value":1019},{"type":112,"tag":133,"props":2755,"children":2756},{"style":176},[2757],{"type":143,"value":455},{"type":112,"tag":133,"props":2759,"children":2760},{"style":147},[2761],{"type":143,"value":2762},"dto",{"type":112,"tag":133,"props":2764,"children":2765},{"style":176},[2766],{"type":143,"value":455},{"type":112,"tag":133,"props":2768,"children":2769},{"style":147},[2770],{"type":143,"value":2771},"msgspec_dto ",{"type":112,"tag":133,"props":2773,"children":2774},{"style":140},[2775],{"type":143,"value":144},{"type":112,"tag":133,"props":2777,"children":2778},{"style":147},[2779],{"type":143,"value":2780}," MsgspecDTO\n",{"type":112,"tag":133,"props":2782,"children":2783},{"class":135,"line":153},[2784,2788,2792,2796,2801,2805],{"type":112,"tag":133,"props":2785,"children":2786},{"style":140},[2787],{"type":143,"value":159},{"type":112,"tag":133,"props":2789,"children":2790},{"style":147},[2791],{"type":143,"value":1019},{"type":112,"tag":133,"props":2793,"children":2794},{"style":176},[2795],{"type":143,"value":455},{"type":112,"tag":133,"props":2797,"children":2798},{"style":147},[2799],{"type":143,"value":2800},"dto ",{"type":112,"tag":133,"props":2802,"children":2803},{"style":140},[2804],{"type":143,"value":144},{"type":112,"tag":133,"props":2806,"children":2807},{"style":147},[2808],{"type":143,"value":2809}," DTOConfig\n",{"type":112,"tag":133,"props":2811,"children":2812},{"class":135,"line":187},[2813,2817,2822,2826],{"type":112,"tag":133,"props":2814,"children":2815},{"style":140},[2816],{"type":143,"value":159},{"type":112,"tag":133,"props":2818,"children":2819},{"style":147},[2820],{"type":143,"value":2821}," msgspec ",{"type":112,"tag":133,"props":2823,"children":2824},{"style":140},[2825],{"type":143,"value":144},{"type":112,"tag":133,"props":2827,"children":2828},{"style":147},[2829],{"type":143,"value":2830}," Struct\n",{"type":112,"tag":133,"props":2832,"children":2833},{"class":135,"line":197},[2834],{"type":112,"tag":133,"props":2835,"children":2836},{"emptyLinePlaceholder":191},[2837],{"type":143,"value":194},{"type":112,"tag":133,"props":2839,"children":2840},{"class":135,"line":237},[2841,2845,2850,2854,2859],{"type":112,"tag":133,"props":2842,"children":2843},{"style":241},[2844],{"type":143,"value":742},{"type":112,"tag":133,"props":2846,"children":2847},{"style":277},[2848],{"type":143,"value":2849}," User",{"type":112,"tag":133,"props":2851,"children":2852},{"style":176},[2853],{"type":143,"value":214},{"type":112,"tag":133,"props":2855,"children":2856},{"style":277},[2857],{"type":143,"value":2858},"Struct",{"type":112,"tag":133,"props":2860,"children":2861},{"style":176},[2862],{"type":143,"value":761},{"type":112,"tag":133,"props":2864,"children":2865},{"class":135,"line":297},[2866,2871,2875],{"type":112,"tag":133,"props":2867,"children":2868},{"style":147},[2869],{"type":143,"value":2870},"    name",{"type":112,"tag":133,"props":2872,"children":2873},{"style":176},[2874],{"type":143,"value":326},{"type":112,"tag":133,"props":2876,"children":2877},{"style":277},[2878],{"type":143,"value":2879}," str\n",{"type":112,"tag":133,"props":2881,"children":2882},{"class":135,"line":348},[2883,2888,2892],{"type":112,"tag":133,"props":2884,"children":2885},{"style":147},[2886],{"type":143,"value":2887},"    email",{"type":112,"tag":133,"props":2889,"children":2890},{"style":176},[2891],{"type":143,"value":326},{"type":112,"tag":133,"props":2893,"children":2894},{"style":277},[2895],{"type":143,"value":2879},{"type":112,"tag":133,"props":2897,"children":2898},{"class":135,"line":356},[2899,2904,2908],{"type":112,"tag":133,"props":2900,"children":2901},{"style":147},[2902],{"type":143,"value":2903},"    password",{"type":112,"tag":133,"props":2905,"children":2906},{"style":176},[2907],{"type":143,"value":326},{"type":112,"tag":133,"props":2909,"children":2910},{"style":277},[2911],{"type":143,"value":2879},{"type":112,"tag":133,"props":2913,"children":2914},{"class":135,"line":399},[2915],{"type":112,"tag":133,"props":2916,"children":2917},{"emptyLinePlaceholder":191},[2918],{"type":143,"value":194},{"type":112,"tag":133,"props":2920,"children":2921},{"class":135,"line":407},[2922,2926,2931,2935,2940,2944,2949],{"type":112,"tag":133,"props":2923,"children":2924},{"style":241},[2925],{"type":143,"value":742},{"type":112,"tag":133,"props":2927,"children":2928},{"style":277},[2929],{"type":143,"value":2930}," UserResponseDTO",{"type":112,"tag":133,"props":2932,"children":2933},{"style":176},[2934],{"type":143,"value":214},{"type":112,"tag":133,"props":2936,"children":2937},{"style":147},[2938],{"type":143,"value":2939},"MsgspecDTO",{"type":112,"tag":133,"props":2941,"children":2942},{"style":176},[2943],{"type":143,"value":274},{"type":112,"tag":133,"props":2945,"children":2946},{"style":147},[2947],{"type":143,"value":2948},"User",{"type":112,"tag":133,"props":2950,"children":2951},{"style":176},[2952],{"type":143,"value":2953},"]):\n",{"type":112,"tag":133,"props":2955,"children":2956},{"class":135,"line":444},[2957,2962,2966,2971,2975,2980,2985,2989,2994,2998],{"type":112,"tag":133,"props":2958,"children":2959},{"style":147},[2960],{"type":143,"value":2961},"    config ",{"type":112,"tag":133,"props":2963,"children":2964},{"style":176},[2965],{"type":143,"value":367},{"type":112,"tag":133,"props":2967,"children":2968},{"style":206},[2969],{"type":143,"value":2970}," DTOConfig",{"type":112,"tag":133,"props":2972,"children":2973},{"style":176},[2974],{"type":143,"value":214},{"type":112,"tag":133,"props":2976,"children":2977},{"style":378},[2978],{"type":143,"value":2979},"exclude",{"type":112,"tag":133,"props":2981,"children":2982},{"style":176},[2983],{"type":143,"value":2984},"={",{"type":112,"tag":133,"props":2986,"children":2987},{"style":176},[2988],{"type":143,"value":219},{"type":112,"tag":133,"props":2990,"children":2991},{"style":222},[2992],{"type":143,"value":2993},"password",{"type":112,"tag":133,"props":2995,"children":2996},{"style":176},[2997],{"type":143,"value":219},{"type":112,"tag":133,"props":2999,"children":3000},{"style":176},[3001],{"type":143,"value":3002},"})\n",{"type":112,"tag":122,"props":3004,"children":3006},{"className":124,"code":3005,"filename":119,"language":126,"meta":107,"style":107},"import uvicorn\nfrom litestar import Litestar, post\nfrom schema import User, UserResponseDTO\n\n@post(\"\u002Fusers\", return_dto=UserResponseDTO)\nasync def create_user(data: User) -> User:\n    return User(name=data.name, email=data.email, password=data.password)\n\napp = Litestar(route_handlers=[create_user], debug=True)\n\nif __name__ == \"__main__\":\n    uvicorn.run(app)\n",[3007],{"type":112,"tag":129,"props":3008,"children":3009},{"__ignoreMap":107},[3010,3021,3049,3078,3085,3136,3184,3274,3281,3328,3335,3366],{"type":112,"tag":133,"props":3011,"children":3012},{"class":135,"line":136},[3013,3017],{"type":112,"tag":133,"props":3014,"children":3015},{"style":140},[3016],{"type":143,"value":144},{"type":112,"tag":133,"props":3018,"children":3019},{"style":147},[3020],{"type":143,"value":150},{"type":112,"tag":133,"props":3022,"children":3023},{"class":135,"line":153},[3024,3028,3032,3036,3040,3044],{"type":112,"tag":133,"props":3025,"children":3026},{"style":140},[3027],{"type":143,"value":159},{"type":112,"tag":133,"props":3029,"children":3030},{"style":147},[3031],{"type":143,"value":164},{"type":112,"tag":133,"props":3033,"children":3034},{"style":140},[3035],{"type":143,"value":144},{"type":112,"tag":133,"props":3037,"children":3038},{"style":147},[3039],{"type":143,"value":173},{"type":112,"tag":133,"props":3041,"children":3042},{"style":176},[3043],{"type":143,"value":179},{"type":112,"tag":133,"props":3045,"children":3046},{"style":147},[3047],{"type":143,"value":3048}," post\n",{"type":112,"tag":133,"props":3050,"children":3051},{"class":135,"line":187},[3052,3056,3061,3065,3069,3073],{"type":112,"tag":133,"props":3053,"children":3054},{"style":140},[3055],{"type":143,"value":159},{"type":112,"tag":133,"props":3057,"children":3058},{"style":147},[3059],{"type":143,"value":3060}," schema ",{"type":112,"tag":133,"props":3062,"children":3063},{"style":140},[3064],{"type":143,"value":144},{"type":112,"tag":133,"props":3066,"children":3067},{"style":147},[3068],{"type":143,"value":2849},{"type":112,"tag":133,"props":3070,"children":3071},{"style":176},[3072],{"type":143,"value":179},{"type":112,"tag":133,"props":3074,"children":3075},{"style":147},[3076],{"type":143,"value":3077}," UserResponseDTO\n",{"type":112,"tag":133,"props":3079,"children":3080},{"class":135,"line":197},[3081],{"type":112,"tag":133,"props":3082,"children":3083},{"emptyLinePlaceholder":191},[3084],{"type":143,"value":194},{"type":112,"tag":133,"props":3086,"children":3087},{"class":135,"line":237},[3088,3092,3097,3101,3105,3110,3114,3118,3123,3127,3132],{"type":112,"tag":133,"props":3089,"children":3090},{"style":176},[3091],{"type":143,"value":203},{"type":112,"tag":133,"props":3093,"children":3094},{"style":206},[3095],{"type":143,"value":3096},"post",{"type":112,"tag":133,"props":3098,"children":3099},{"style":176},[3100],{"type":143,"value":214},{"type":112,"tag":133,"props":3102,"children":3103},{"style":176},[3104],{"type":143,"value":219},{"type":112,"tag":133,"props":3106,"children":3107},{"style":222},[3108],{"type":143,"value":3109},"\u002Fusers",{"type":112,"tag":133,"props":3111,"children":3112},{"style":176},[3113],{"type":143,"value":219},{"type":112,"tag":133,"props":3115,"children":3116},{"style":176},[3117],{"type":143,"value":179},{"type":112,"tag":133,"props":3119,"children":3120},{"style":378},[3121],{"type":143,"value":3122}," return_dto",{"type":112,"tag":133,"props":3124,"children":3125},{"style":176},[3126],{"type":143,"value":367},{"type":112,"tag":133,"props":3128,"children":3129},{"style":206},[3130],{"type":143,"value":3131},"UserResponseDTO",{"type":112,"tag":133,"props":3133,"children":3134},{"style":176},[3135],{"type":143,"value":234},{"type":112,"tag":133,"props":3137,"children":3138},{"class":135,"line":297},[3139,3143,3147,3152,3156,3160,3164,3168,3172,3176,3180],{"type":112,"tag":133,"props":3140,"children":3141},{"style":241},[3142],{"type":143,"value":244},{"type":112,"tag":133,"props":3144,"children":3145},{"style":241},[3146],{"type":143,"value":249},{"type":112,"tag":133,"props":3148,"children":3149},{"style":206},[3150],{"type":143,"value":3151}," create_user",{"type":112,"tag":133,"props":3153,"children":3154},{"style":176},[3155],{"type":143,"value":214},{"type":112,"tag":133,"props":3157,"children":3158},{"style":378},[3159],{"type":143,"value":1893},{"type":112,"tag":133,"props":3161,"children":3162},{"style":176},[3163],{"type":143,"value":326},{"type":112,"tag":133,"props":3165,"children":3166},{"style":147},[3167],{"type":143,"value":2849},{"type":112,"tag":133,"props":3169,"children":3170},{"style":176},[3171],{"type":143,"value":889},{"type":112,"tag":133,"props":3173,"children":3174},{"style":176},[3175],{"type":143,"value":264},{"type":112,"tag":133,"props":3177,"children":3178},{"style":147},[3179],{"type":143,"value":2849},{"type":112,"tag":133,"props":3181,"children":3182},{"style":176},[3183],{"type":143,"value":441},{"type":112,"tag":133,"props":3185,"children":3186},{"class":135,"line":348},[3187,3191,3195,3199,3203,3207,3211,3215,3219,3223,3228,3232,3236,3240,3245,3249,3254,3258,3262,3266,3270],{"type":112,"tag":133,"props":3188,"children":3189},{"style":140},[3190],{"type":143,"value":303},{"type":112,"tag":133,"props":3192,"children":3193},{"style":206},[3194],{"type":143,"value":2849},{"type":112,"tag":133,"props":3196,"children":3197},{"style":176},[3198],{"type":143,"value":214},{"type":112,"tag":133,"props":3200,"children":3201},{"style":378},[3202],{"type":143,"value":965},{"type":112,"tag":133,"props":3204,"children":3205},{"style":176},[3206],{"type":143,"value":367},{"type":112,"tag":133,"props":3208,"children":3209},{"style":206},[3210],{"type":143,"value":1893},{"type":112,"tag":133,"props":3212,"children":3213},{"style":176},[3214],{"type":143,"value":455},{"type":112,"tag":133,"props":3216,"children":3217},{"style":1824},[3218],{"type":143,"value":965},{"type":112,"tag":133,"props":3220,"children":3221},{"style":176},[3222],{"type":143,"value":179},{"type":112,"tag":133,"props":3224,"children":3225},{"style":378},[3226],{"type":143,"value":3227}," email",{"type":112,"tag":133,"props":3229,"children":3230},{"style":176},[3231],{"type":143,"value":367},{"type":112,"tag":133,"props":3233,"children":3234},{"style":206},[3235],{"type":143,"value":1893},{"type":112,"tag":133,"props":3237,"children":3238},{"style":176},[3239],{"type":143,"value":455},{"type":112,"tag":133,"props":3241,"children":3242},{"style":1824},[3243],{"type":143,"value":3244},"email",{"type":112,"tag":133,"props":3246,"children":3247},{"style":176},[3248],{"type":143,"value":179},{"type":112,"tag":133,"props":3250,"children":3251},{"style":378},[3252],{"type":143,"value":3253}," password",{"type":112,"tag":133,"props":3255,"children":3256},{"style":176},[3257],{"type":143,"value":367},{"type":112,"tag":133,"props":3259,"children":3260},{"style":206},[3261],{"type":143,"value":1893},{"type":112,"tag":133,"props":3263,"children":3264},{"style":176},[3265],{"type":143,"value":455},{"type":112,"tag":133,"props":3267,"children":3268},{"style":1824},[3269],{"type":143,"value":2993},{"type":112,"tag":133,"props":3271,"children":3272},{"style":176},[3273],{"type":143,"value":234},{"type":112,"tag":133,"props":3275,"children":3276},{"class":135,"line":356},[3277],{"type":112,"tag":133,"props":3278,"children":3279},{"emptyLinePlaceholder":191},[3280],{"type":143,"value":194},{"type":112,"tag":133,"props":3282,"children":3283},{"class":135,"line":399},[3284,3288,3292,3296,3300,3304,3308,3313,3318,3323],{"type":112,"tag":133,"props":3285,"children":3286},{"style":147},[3287],{"type":143,"value":362},{"type":112,"tag":133,"props":3289,"children":3290},{"style":176},[3291],{"type":143,"value":367},{"type":112,"tag":133,"props":3293,"children":3294},{"style":206},[3295],{"type":143,"value":173},{"type":112,"tag":133,"props":3297,"children":3298},{"style":176},[3299],{"type":143,"value":214},{"type":112,"tag":133,"props":3301,"children":3302},{"style":378},[3303],{"type":143,"value":381},{"type":112,"tag":133,"props":3305,"children":3306},{"style":176},[3307],{"type":143,"value":386},{"type":112,"tag":133,"props":3309,"children":3310},{"style":206},[3311],{"type":143,"value":3312},"create_user",{"type":112,"tag":133,"props":3314,"children":3315},{"style":176},[3316],{"type":143,"value":3317},"],",{"type":112,"tag":133,"props":3319,"children":3320},{"style":378},[3321],{"type":143,"value":3322}," debug",{"type":112,"tag":133,"props":3324,"children":3325},{"style":176},[3326],{"type":143,"value":3327},"=True)\n",{"type":112,"tag":133,"props":3329,"children":3330},{"class":135,"line":407},[3331],{"type":112,"tag":133,"props":3332,"children":3333},{"emptyLinePlaceholder":191},[3334],{"type":143,"value":194},{"type":112,"tag":133,"props":3336,"children":3337},{"class":135,"line":444},[3338,3342,3346,3350,3354,3358,3362],{"type":112,"tag":133,"props":3339,"children":3340},{"style":140},[3341],{"type":143,"value":413},{"type":112,"tag":133,"props":3343,"children":3344},{"style":147},[3345],{"type":143,"value":418},{"type":112,"tag":133,"props":3347,"children":3348},{"style":176},[3349],{"type":143,"value":423},{"type":112,"tag":133,"props":3351,"children":3352},{"style":176},[3353],{"type":143,"value":331},{"type":112,"tag":133,"props":3355,"children":3356},{"style":222},[3357],{"type":143,"value":432},{"type":112,"tag":133,"props":3359,"children":3360},{"style":176},[3361],{"type":143,"value":219},{"type":112,"tag":133,"props":3363,"children":3364},{"style":176},[3365],{"type":143,"value":441},{"type":112,"tag":133,"props":3367,"children":3368},{"class":135,"line":1870},[3369,3373,3377,3381,3385,3389],{"type":112,"tag":133,"props":3370,"children":3371},{"style":147},[3372],{"type":143,"value":450},{"type":112,"tag":133,"props":3374,"children":3375},{"style":176},[3376],{"type":143,"value":455},{"type":112,"tag":133,"props":3378,"children":3379},{"style":206},[3380],{"type":143,"value":460},{"type":112,"tag":133,"props":3382,"children":3383},{"style":176},[3384],{"type":143,"value":214},{"type":112,"tag":133,"props":3386,"children":3387},{"style":206},[3388],{"type":143,"value":469},{"type":112,"tag":133,"props":3390,"children":3391},{"style":176},[3392],{"type":143,"value":234},{"type":112,"tag":122,"props":3394,"children":3396},{"className":476,"code":3395,"filename":478,"language":479,"meta":107,"style":107},"[project]\nname = \"litestar-dto-example\"\nversion = \"0.1.0\"\ndescription = \"A Litestar DTO example\"\nreadme = \"README.md\"\nrequires-python = \">=3.13\"\ndependencies = [\n    \"litestar[standard]>=2.17.0\"\n]\n",[3397],{"type":112,"tag":129,"props":3398,"children":3399},{"__ignoreMap":107},[3400,3415,3439,3462,3486,3509,3532,3547,3562],{"type":112,"tag":133,"props":3401,"children":3402},{"class":135,"line":136},[3403,3407,3411],{"type":112,"tag":133,"props":3404,"children":3405},{"style":176},[3406],{"type":143,"value":274},{"type":112,"tag":133,"props":3408,"children":3409},{"style":277},[3410],{"type":143,"value":495},{"type":112,"tag":133,"props":3412,"children":3413},{"style":176},[3414],{"type":143,"value":500},{"type":112,"tag":133,"props":3416,"children":3417},{"class":135,"line":153},[3418,3422,3426,3430,3435],{"type":112,"tag":133,"props":3419,"children":3420},{"style":147},[3421],{"type":143,"value":508},{"type":112,"tag":133,"props":3423,"children":3424},{"style":176},[3425],{"type":143,"value":367},{"type":112,"tag":133,"props":3427,"children":3428},{"style":176},[3429],{"type":143,"value":331},{"type":112,"tag":133,"props":3431,"children":3432},{"style":222},[3433],{"type":143,"value":3434},"litestar-dto-example",{"type":112,"tag":133,"props":3436,"children":3437},{"style":176},[3438],{"type":143,"value":526},{"type":112,"tag":133,"props":3440,"children":3441},{"class":135,"line":187},[3442,3446,3450,3454,3458],{"type":112,"tag":133,"props":3443,"children":3444},{"style":147},[3445],{"type":143,"value":534},{"type":112,"tag":133,"props":3447,"children":3448},{"style":176},[3449],{"type":143,"value":367},{"type":112,"tag":133,"props":3451,"children":3452},{"style":176},[3453],{"type":143,"value":331},{"type":112,"tag":133,"props":3455,"children":3456},{"style":222},[3457],{"type":143,"value":547},{"type":112,"tag":133,"props":3459,"children":3460},{"style":176},[3461],{"type":143,"value":526},{"type":112,"tag":133,"props":3463,"children":3464},{"class":135,"line":197},[3465,3469,3473,3477,3482],{"type":112,"tag":133,"props":3466,"children":3467},{"style":147},[3468],{"type":143,"value":559},{"type":112,"tag":133,"props":3470,"children":3471},{"style":176},[3472],{"type":143,"value":367},{"type":112,"tag":133,"props":3474,"children":3475},{"style":176},[3476],{"type":143,"value":331},{"type":112,"tag":133,"props":3478,"children":3479},{"style":222},[3480],{"type":143,"value":3481},"A Litestar DTO example",{"type":112,"tag":133,"props":3483,"children":3484},{"style":176},[3485],{"type":143,"value":526},{"type":112,"tag":133,"props":3487,"children":3488},{"class":135,"line":237},[3489,3493,3497,3501,3505],{"type":112,"tag":133,"props":3490,"children":3491},{"style":147},[3492],{"type":143,"value":584},{"type":112,"tag":133,"props":3494,"children":3495},{"style":176},[3496],{"type":143,"value":367},{"type":112,"tag":133,"props":3498,"children":3499},{"style":176},[3500],{"type":143,"value":331},{"type":112,"tag":133,"props":3502,"children":3503},{"style":222},[3504],{"type":143,"value":597},{"type":112,"tag":133,"props":3506,"children":3507},{"style":176},[3508],{"type":143,"value":526},{"type":112,"tag":133,"props":3510,"children":3511},{"class":135,"line":297},[3512,3516,3520,3524,3528],{"type":112,"tag":133,"props":3513,"children":3514},{"style":147},[3515],{"type":143,"value":609},{"type":112,"tag":133,"props":3517,"children":3518},{"style":176},[3519],{"type":143,"value":367},{"type":112,"tag":133,"props":3521,"children":3522},{"style":176},[3523],{"type":143,"value":331},{"type":112,"tag":133,"props":3525,"children":3526},{"style":222},[3527],{"type":143,"value":622},{"type":112,"tag":133,"props":3529,"children":3530},{"style":176},[3531],{"type":143,"value":526},{"type":112,"tag":133,"props":3533,"children":3534},{"class":135,"line":348},[3535,3539,3543],{"type":112,"tag":133,"props":3536,"children":3537},{"style":147},[3538],{"type":143,"value":634},{"type":112,"tag":133,"props":3540,"children":3541},{"style":176},[3542],{"type":143,"value":367},{"type":112,"tag":133,"props":3544,"children":3545},{"style":176},[3546],{"type":143,"value":643},{"type":112,"tag":133,"props":3548,"children":3549},{"class":135,"line":356},[3550,3554,3558],{"type":112,"tag":133,"props":3551,"children":3552},{"style":176},[3553],{"type":143,"value":651},{"type":112,"tag":133,"props":3555,"children":3556},{"style":222},[3557],{"type":143,"value":656},{"type":112,"tag":133,"props":3559,"children":3560},{"style":176},[3561],{"type":143,"value":526},{"type":112,"tag":133,"props":3563,"children":3564},{"class":135,"line":399},[3565],{"type":112,"tag":133,"props":3566,"children":3567},{"style":176},[3568],{"type":143,"value":500},{"type":112,"tag":674,"props":3570,"children":3571},{},[3572],{"type":143,"value":678},{"title":107,"searchDepth":153,"depth":153,"links":3574},[],{},{"title":3577,"description":3578,"links":3579},"Extend Litestar with plugins","Litestar has a rich module ecosystem, with both official and community-driven plugins. This accelerates development by providing ready-to-use solutions for common needs.",[3580],{"label":3581,"to":3582,"icon":15,"color":14,"trailing":191},"Explore all plugins","\u002Fplugins",{"title":3584,"description":3585,"links":3586},"Sponsors","Litestar is made possible by contributors and sponsor, it will remain free and open source under the MIT License.",[3587],{"label":3588,"to":3589,"color":14,"trailingIcon":3590,"trailing":191},"Become a sponsor","https:\u002F\u002Fopencollective.com\u002Flitestar","i-lucide-heart",{"title":3592,"description":3593,"community":3594,"cta":3597},"The developer's choice for simple and powerful APIs","Litestar was born from developers' need to boost productivity and platform performance.\nWhat began as a starlette based-solution is now a solid ASGI frameworks to build APIs that scale.\n",{"title":3595,"description":3596},"Open source","Litestar is 100% powered by our passionate open source community.",{"label":3598,"to":3599,"color":14,"variant":13,"icon":3600,"trailing":191},"Start contributing","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar","i-simple-icons-github",{"title":3602,"description":3603,"links":3604,"features":3611},"Use starter and templates","Kickstart your Litestar project with pre-built templates featuring common patterns, integrations, and best practices.",[3605,3608],{"label":3606,"to":3607,"variant":13,"color":14,"trailingIcon":15},"Explore starters","\u002Ftemplates#starters",{"label":3609,"to":3610,"variant":13,"color":14,"trailingIcon":15},"Explore templates","\u002Ftemplates#templates",[3612,3615,3619],{"title":3613,"description":3614,"icon":104},"Starters","Perfect for learning Litestar fundamentals or building simple applications quickly.",{"title":3616,"description":3617,"icon":3618},"Production-ready templates","Complete application templates with databases, authentication, and advanced features.","i-lucide-rocket",{"title":3620,"description":3621,"icon":3622},"Customizable & extensible","Everything remain easily customizable and extensible.","i-lucide-palette","gHN9K5L87jZWfkEqX-IS7e4YmMscQ5PWKM34vXh-eV8",[3625,3634,3645,3655,3665,3674],{"id":3626,"title":3627,"description":3628,"extension":34,"featured":191,"github":3629,"icon":104,"meta":3630,"stem":3631,"template":3632,"__hash__":3633},"starters\u002Fstarters\u002F1.litestar.yml","Litestar","Starter for an API with OpenAPI documentation, validation and CRUD operations.","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-templates\u002Ftree\u002Fmain\u002Fbasic-api",{},"starters\u002F1.litestar","api","UUVknUuKtfnpEfLClWP1DYlQXive8ZwcNAsy3ZuiLDU",{"id":3635,"title":3636,"description":3637,"extension":34,"featured":3638,"github":3639,"icon":3640,"meta":3641,"stem":3642,"template":3643,"__hash__":3644},"starters\u002Fstarters\u002F2.minimal-litestar.yml","Minimal Litestar","Starter for a minimal API.",false,"https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-templates\u002Ftree\u002Fmain\u002Fhello-world","i-lucide-globe",{},"starters\u002F2.minimal-litestar","minimal","7Kl4KNkqQu4inf1ONFlcJlbztLGyD6ti-jP31tIFUo4",{"id":3646,"title":3647,"description":3648,"extension":34,"featured":3638,"github":3649,"icon":3650,"meta":3651,"stem":3652,"template":3653,"__hash__":3654},"starters\u002Fstarters\u002F3.plugin.yml","Plugin","Starter for a plugin.","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-templates\u002Ftree\u002Fmain\u002Fcli-app","i-lucide-terminal",{},"starters\u002F3.plugin","plugin","2LpUIdBeBoqgD3iPfcqFcwDwfXTGkW8iEmfh9fGhqP4",{"id":3656,"title":3657,"description":3658,"extension":34,"featured":3638,"github":3659,"icon":3660,"meta":3661,"stem":3662,"template":3663,"__hash__":3664},"starters\u002Fstarters\u002F4.middleware.yml","Middleware","Starter for a middleware.","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-templates\u002Ftree\u002Fmain\u002Fmiddleware","i-lucide-layers",{},"starters\u002F4.middleware","middleware","XvOwnVfsBx3z5c9gf2nUrcKGTMV7zSnY1vUuda7D9wI",{"id":3666,"title":3667,"description":3668,"extension":34,"featured":3638,"github":3669,"icon":70,"meta":3670,"stem":3671,"template":3672,"__hash__":3673},"starters\u002Fstarters\u002F5.advanced-alchemy.yml","Advanced-Alchemy (SQLAlchemy + Alembic)","Starter with ORM, database migration and services for a Rest API","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-templates\u002Ftree\u002Fmain\u002Fsqlalchemy-template",{},"starters\u002F5.advanced-alchemy","advanced-alchemy","vdBCtlBI_oBBz_sbgPQ2BHLuhLKvrn1mg-RDlvWk-68",{"id":3675,"title":3676,"description":3677,"extension":34,"featured":3638,"github":3678,"icon":24,"meta":3679,"stem":3680,"template":3681,"__hash__":3682},"starters\u002Fstarters\u002F6.jwt.yml","JWT Authentication","Complete authentication system with JWT tokens, user management, and protected routes.","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-templates\u002Ftree\u002Fmain\u002Fjwt-auth",{},"starters\u002F6.jwt","jwt-auth","NqrOjgXTSfM-w2q5Jr1H-YR9lGmw93XXyWaMNVAY6vo",[3684],{"id":3685,"title":3686,"description":3687,"extension":34,"features":3688,"icon":3693,"images":5,"links":3697,"meta":3706,"stem":3707,"thumbnail":3708,"__hash__":3711},"templates\u002Ftemplates\u002F1.litestar-fullstack.yml","Litestar Fullstack","A complete fullstack web application template built with Litestar backend and modern frontend frameworks. Includes user authentication, database integration, and responsive design patterns.",[3689,3691,3694],{"title":3690,"icon":70},"Database integration with Advanced Alchemy",{"title":3692,"icon":3693},"User authentication\u002Fregistration and access rights","i-lucide-user",{"title":3695,"icon":3696},"Front-end using React","i-simple-icons-react",[3698,3704],{"label":3699,"to":3700,"target":3701,"leadingIcon":3702,"trailingIcon":3703,"color":14},"Preview","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-fullstack","_blank","i-custom-litestar","i-lucide-arrow-up-right",{"label":3705,"to":3700,"target":3701,"leadingIcon":3600,"trailingIcon":3703,"color":14,"variant":13},"Repository",{},"templates\u002F1.litestar-fullstack",{"dark":3709,"light":3710},"https:\u002F\u002Fassets.hub.nuxt.com\u002FeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2Rhc2hib2FyZC10ZW1wbGF0ZS5udXh0LmRldiIsImlhdCI6MTczOTQ2MzU2N30._VElt4uvLjvAMdnTLytCInOajMElzWDKbmvOaMZhZUI.jpg?theme=dark","https:\u002F\u002Fassets.hub.nuxt.com\u002FeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2Rhc2hib2FyZC10ZW1wbGF0ZS5udXh0LmRldiIsImlhdCI6MTczOTQ2MzU2N30._VElt4uvLjvAMdnTLytCInOajMElzWDKbmvOaMZhZUI.jpg?theme=light","slh40ee9yfKsHamRCgfTCmxewt1Ywnukjpun_lctT3A",[3713,3751,3777,3804,3830,3857,3882,3909,3934,3961,3986,4013],{"id":3714,"title":3715,"body":5,"category":3716,"changelog":3717,"compatibility":3718,"created_at":3720,"description":3721,"documentation":3722,"extension":34,"github":3723,"icon":3724,"issues":3725,"key":3672,"latest_version":3726,"license":5,"maintainers":3727,"meta":3732,"monthly_downloads":3733,"name":3715,"navigation":191,"path":3734,"pypi":3672,"python_compatibility":3735,"python_compatibility_raw":3736,"repo":3744,"seo":3745,"sponsor":3638,"stars":3746,"stem":3747,"type":3748,"updated_at":3749,"website":3722,"__hash__":3750},"plugins\u002Fplugins\u002Fadvanced-alchemy.yml","Advanced Alchemy","Database","https:\u002F\u002Fadvanced-alchemy.litestar.dev\u002Flatest\u002Fchangelog",{"litestar":3719},">=2.23.0","2023-09-17T17:39:42","Ready-to-go SQLAlchemy concoctions.","https:\u002F\u002Fadvanced-alchemy.litestar.dev\u002Flatest\u002F","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Fadvanced-alchemy","advanced-alchemy.png","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Fadvanced-alchemy\u002Fissues\u002F","1.11.0",[3728],{"name":3729,"github":3730,"avatar":3731},"Cody Fincher","cofin","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F204685?v=4",{},390809,"\u002Fplugins\u002Fadvanced-alchemy",{"raw":3736,"specifier_set":3736,"compatible":3737},">=3.9",[3738,3739,3740,3741,3742,3743],"3.9","3.10","3.11","3.12","3.13","3.14","litestar-org\u002Fadvanced-alchemy",{"description":3721},792,"plugins\u002Fadvanced-alchemy","official","2026-05-31T18:14:26","Wl_c78QtJinjSoHElwSWqN53Vmp6D1RB9mmyK7Qvzi8",{"id":3752,"title":3753,"body":5,"category":3716,"changelog":3754,"compatibility":3755,"created_at":3757,"description":3758,"documentation":3759,"extension":34,"github":3759,"icon":3760,"issues":3761,"key":3762,"latest_version":3763,"license":5,"maintainers":3764,"meta":3766,"monthly_downloads":3767,"name":3768,"navigation":191,"path":3769,"pypi":3762,"python_compatibility":3770,"python_compatibility_raw":3736,"repo":3772,"seo":3773,"sponsor":3638,"stars":1946,"stem":3774,"type":3748,"updated_at":3775,"website":3759,"__hash__":3776},"plugins\u002Fplugins\u002Flitestar-asyncpg.yml","Litestar Asyncpg","https:\u002F\u002Flitestar-org.github.io\u002Flitesatr-asyncpg\u002Flatest\u002Fchangelog",{"litestar":3756},">=2.0.29","2023-10-01T23:31:27","Asyncpg plugin for Litestar","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-asyncpg","litestar-asyncpg.svg","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-asyncpg\u002Fissues\u002F","litestar-asyncpg","0.5.0",[3765],{"name":3729,"github":3730,"avatar":3731},{},1129,"Litestar AsyncPG","\u002Fplugins\u002Flitestar-asyncpg",{"raw":3736,"specifier_set":3736,"compatible":3771},[3738,3739,3740,3741,3742,3743],"litestar-org\u002Flitestar-asyncpg",{"description":3758},"plugins\u002Flitestar-asyncpg","2025-06-24T16:45:09","5_WAsWIs0fKwJk8oWmnhlTMs-7hEt9fm-QC5J_2JyTg",{"id":3778,"title":3779,"body":5,"category":3780,"changelog":3781,"compatibility":3782,"created_at":3783,"description":3784,"documentation":3785,"extension":34,"github":3786,"icon":3787,"issues":3788,"key":3789,"latest_version":3790,"license":5,"maintainers":3791,"meta":3793,"monthly_downloads":3794,"name":3779,"navigation":191,"path":3795,"pypi":3789,"python_compatibility":3796,"python_compatibility_raw":3797,"repo":3799,"seo":3800,"sponsor":3638,"stars":153,"stem":3801,"type":3748,"updated_at":3802,"website":3785,"__hash__":3803},"plugins\u002Fplugins\u002Flitestar-autowire.yml","Litestar Autowire","Others","https:\u002F\u002Fcofin.github.io\u002Flitestar-autowire\u002Flatest\u002Fchangelog",{"litestar":3719},"2026-07-02T01:24:44","Package-based route, listener, and task discovery for Litestar","https:\u002F\u002Fcofin.github.io\u002Flitestar-autowire\u002F","https:\u002F\u002Fgithub.com\u002Fcofin\u002Flitestar-autowire","litestar-autowire.svg","https:\u002F\u002Fgithub.com\u002Fcofin\u002Flitestar-autowire\u002Fissues\u002F","litestar-autowire","0.2.0",[3792],{"name":3729,"github":3730,"avatar":3731},{},541,"\u002Fplugins\u002Flitestar-autowire",{"raw":3797,"specifier_set":3797,"compatible":3798},">=3.10",[3739,3740,3741,3742,3743],"cofin\u002Flitestar-autowire",{"description":3784},"plugins\u002Flitestar-autowire","2026-07-07T17:21:21","EIP8uo-44N0w0VsYmPzImwyraLhcDz7ypII7GVJixiI",{"id":3805,"title":3806,"body":5,"category":3780,"changelog":3807,"compatibility":3808,"created_at":3810,"description":3811,"documentation":3812,"extension":34,"github":3813,"icon":3814,"issues":3815,"key":3816,"latest_version":3817,"license":5,"maintainers":3818,"meta":3820,"monthly_downloads":3821,"name":3806,"navigation":191,"path":3822,"pypi":3816,"python_compatibility":3823,"python_compatibility_raw":3797,"repo":3825,"seo":3826,"sponsor":3638,"stars":1956,"stem":3827,"type":3748,"updated_at":3828,"website":3813,"__hash__":3829},"plugins\u002Fplugins\u002Flitestar-email.yml","Litestar Email","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-email\u002Freleases\u002F",{"litestar":3809},">=2.0.0","2026-01-04T21:35:28","Email plugin for Litestar","https:\u002F\u002Flitestar-org.github.io\u002Flitestar-email\u002F","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-email","_default_icon.svg","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-email\u002Fissues\u002F","litestar-email","0.4.0",[3819],{"name":3729,"github":3730,"avatar":3731},{},3465,"\u002Fplugins\u002Flitestar-email",{"raw":3797,"specifier_set":3797,"compatible":3824},[3739,3740,3741,3742,3743],"litestar-org\u002Flitestar-email",{"description":3811},"plugins\u002Flitestar-email","2026-05-03T16:59:03","WYaZIb7ES6o6IEH-dFysWOqvNNxaQu-oROpU-Z6UhyM",{"id":3831,"title":3832,"body":5,"category":3833,"changelog":3834,"compatibility":3835,"created_at":3837,"description":3838,"documentation":3839,"extension":34,"github":3839,"icon":3840,"issues":3841,"key":3842,"latest_version":3843,"license":5,"maintainers":3844,"meta":3846,"monthly_downloads":3847,"name":3832,"navigation":191,"path":3848,"pypi":3842,"python_compatibility":3849,"python_compatibility_raw":3797,"repo":3851,"seo":3852,"sponsor":3638,"stars":3853,"stem":3854,"type":3748,"updated_at":3855,"website":3839,"__hash__":3856},"plugins\u002Fplugins\u002Flitestar-granian.yml","Litestar Granian","Deployment","https:\u002F\u002Fcofin.github.io\u002Flitesatr-granian\u002Flatest\u002Fchangelog",{"litestar":3836},">=2.15.0","2023-10-02T01:42:04","Granian plugin for Litestar","https:\u002F\u002Fgithub.com\u002Fcofin\u002Flitestar-granian","litestar-granian.png","https:\u002F\u002Fgithub.com\u002Fcofin\u002Flitestar-granian\u002Fissues\u002F","litestar-granian","0.15.0",[3845],{"name":3729,"github":3730,"avatar":3731},{},23404,"\u002Fplugins\u002Flitestar-granian",{"raw":3797,"specifier_set":3797,"compatible":3850},[3739,3740,3741,3742,3743],"cofin\u002Flitestar-granian",{"description":3838},44,"plugins\u002Flitestar-granian","2026-07-25T02:21:57","4lpfe2TCtpVx57k3UiOXY8ApLbrOslPDMR-BzxGkDKw",{"id":3858,"title":3859,"body":5,"category":3860,"changelog":5,"compatibility":3861,"created_at":3862,"description":3863,"documentation":3864,"extension":34,"github":3865,"icon":3866,"issues":5,"key":3867,"latest_version":3763,"license":5,"maintainers":3868,"meta":3870,"monthly_downloads":3871,"name":3872,"navigation":191,"path":3873,"pypi":3867,"python_compatibility":3874,"python_compatibility_raw":3875,"repo":3877,"seo":3878,"sponsor":3638,"stars":1870,"stem":3879,"type":3748,"updated_at":3880,"website":3865,"__hash__":3881},"plugins\u002Fplugins\u002Flitestar-htmx.yml","Litestar Htmx","UI",{"litestar":3809},"2024-10-20T17:49:03","HTMX Integration for Litestar","https:\u002F\u002Flitestar-org.github.io\u002Flitestar-htmx\u002F","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-htmx","litestar-htmx.svg","litestar-htmx",[3869],{"name":3729,"github":3730,"avatar":3731},{},1694804,"Litestar HTMX","\u002Fplugins\u002Flitestar-htmx",{"raw":3875,"specifier_set":3875,"compatible":3876},"\u003C4.0,>=3.9",[3738,3739,3740,3741,3742,3743],"litestar-org\u002Flitestar-htmx",{"description":3863},"plugins\u002Flitestar-htmx","2025-06-11T21:19:45","o2Z8iO6fZzz7saoNEZurAKHvzB0ofn9cTZLShwpoc50",{"id":3883,"title":3884,"body":5,"category":3885,"changelog":3886,"compatibility":3887,"created_at":3888,"description":3889,"documentation":3890,"extension":34,"github":3891,"icon":3892,"issues":3893,"key":3894,"latest_version":3895,"license":5,"maintainers":3896,"meta":3898,"monthly_downloads":3899,"name":3900,"navigation":191,"path":3901,"pypi":3894,"python_compatibility":3902,"python_compatibility_raw":3797,"repo":3904,"seo":3905,"sponsor":3638,"stars":1870,"stem":3906,"type":3748,"updated_at":3907,"website":3890,"__hash__":3908},"plugins\u002Fplugins\u002Flitestar-mcp.yml","Litestar Mcp","AI","https:\u002F\u002Fcofin.github.io\u002Flitestar-mcp\u002Flatest\u002Fchangelog",{"litestar":3719},"2025-09-06T19:14:18","Litestar plugin for Model Context Protocol (MCP) integration","https:\u002F\u002Fcofin.github.io\u002Flitestar-mcp\u002Flatest\u002F","https:\u002F\u002Fgithub.com\u002Fcofin\u002Flitestar-mcp","litestar-mcp.svg","https:\u002F\u002Fgithub.com\u002Fcofin\u002Flitestar-mcp\u002Fissues\u002F","litestar-mcp","0.11.1",[3897],{"name":3729,"github":3730,"avatar":3731},{},12674,"Litestar MCP","\u002Fplugins\u002Flitestar-mcp",{"raw":3797,"specifier_set":3797,"compatible":3903},[3739,3740,3741,3742,3743],"cofin\u002Flitestar-mcp",{"description":3889},"plugins\u002Flitestar-mcp","2026-07-06T14:54:42","qLyRwsY91YRVtnxd2F7badMI3b_2wx77rRdNnEt76dA",{"id":3910,"title":3911,"body":5,"category":3716,"changelog":3912,"compatibility":3913,"created_at":3914,"description":3915,"documentation":3916,"extension":34,"github":3916,"icon":3917,"issues":3918,"key":3919,"latest_version":3790,"license":5,"maintainers":3920,"meta":3922,"monthly_downloads":3923,"name":3924,"navigation":191,"path":3925,"pypi":3919,"python_compatibility":3926,"python_compatibility_raw":3927,"repo":3929,"seo":3930,"sponsor":3638,"stars":197,"stem":3931,"type":3748,"updated_at":3932,"website":3916,"__hash__":3933},"plugins\u002Fplugins\u002Flitestar-oracledb.yml","Litestar Oracledb","https:\u002F\u002Flitestar-org.github.io\u002Flitesatr-oracledb\u002Flatest\u002Fchangelog",{"litestar":3756},"2024-08-29T19:33:20","Oracle DB plugin for Litestar","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-oracledb","litestar-oracledb.svg","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-oracledb\u002Fissues\u002F","litestar-oracledb",[3921],{"name":3729,"github":3730,"avatar":3731},{},30,"Litestar OracleDB","\u002Fplugins\u002Flitestar-oracledb",{"raw":3927,"specifier_set":3927,"compatible":3928},">=3.8",[3738,3739,3740,3741,3742,3743],"litestar-org\u002Flitestar-oracledb",{"description":3915},"plugins\u002Flitestar-oracledb","2024-09-04T20:30:03","kcILDvsRbPssSLGRkF4-22D4bFypBg1v55ZuxGnDfNM",{"id":3935,"title":3936,"body":5,"category":3937,"changelog":3938,"compatibility":3939,"created_at":3941,"description":3942,"documentation":3943,"extension":34,"github":3944,"icon":3945,"issues":3946,"key":3947,"latest_version":3948,"license":5,"maintainers":3949,"meta":3951,"monthly_downloads":3952,"name":3936,"navigation":191,"path":3953,"pypi":3947,"python_compatibility":3954,"python_compatibility_raw":3797,"repo":3956,"seo":3957,"sponsor":3638,"stars":297,"stem":3958,"type":3748,"updated_at":3959,"website":3943,"__hash__":3960},"plugins\u002Fplugins\u002Flitestar-queues.yml","Litestar Queues","Background Processing","https:\u002F\u002Fcofin.github.io\u002Flitestar-queues\u002Fchangelog",{"litestar":3940},">=2.24.0","2026-06-29T20:51:10","Task queues, workers, schedules, and backend integrations for Litestar","https:\u002F\u002Fcofin.github.io\u002Flitestar-queues\u002F","https:\u002F\u002Fgithub.com\u002Fcofin\u002Flitestar-queues","litestar-queues.svg","https:\u002F\u002Fgithub.com\u002Fcofin\u002Flitestar-queues\u002Fissues\u002F","litestar-queues","0.6.0",[3950],{"name":3729,"github":3730,"avatar":3731},{},972,"\u002Fplugins\u002Flitestar-queues",{"raw":3797,"specifier_set":3797,"compatible":3955},[3739,3740,3741,3742,3743],"cofin\u002Flitestar-queues",{"description":3942},"plugins\u002Flitestar-queues","2026-07-25T18:03:42","mIsZ5uTCb8wk4v81hZVn2dAJj39pnWgFF__nG5NTNr4",{"id":3962,"title":3963,"body":5,"category":3937,"changelog":3964,"compatibility":3965,"created_at":3967,"description":3968,"documentation":3969,"extension":34,"github":3969,"icon":3814,"issues":3970,"key":3971,"latest_version":3972,"license":5,"maintainers":3973,"meta":3975,"monthly_downloads":3976,"name":3977,"navigation":191,"path":3978,"pypi":3971,"python_compatibility":3979,"python_compatibility_raw":3736,"repo":3981,"seo":3982,"sponsor":3638,"stars":3923,"stem":3983,"type":3748,"updated_at":3984,"website":3969,"__hash__":3985},"plugins\u002Fplugins\u002Flitestar-saq.yml","Litestar Saq","https:\u002F\u002Fcofin.github.io\u002Flitesatr-saq\u002Flatest\u002Fchangelog",{"litestar":3966},">=2.0.1","2023-10-04T03:57:48","Litestar integration for SAQ","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-saq","https:\u002F\u002Fgithub.com\u002Fcofin\u002Flitestar-saq\u002Fissues\u002F","litestar-saq","0.8.0",[3974],{"name":3729,"github":3730,"avatar":3731},{},18416,"Litestar SAQ","\u002Fplugins\u002Flitestar-saq",{"raw":3736,"specifier_set":3736,"compatible":3980},[3738,3739,3740,3741,3742,3743],"litestar-org\u002Flitestar-saq",{"description":3968},"plugins\u002Flitestar-saq","2026-06-03T21:07:52","Lsd8xAFL4AHKVUCHRkD87g-C80S_Ibi789Un5fypB0w",{"id":3987,"title":3988,"body":5,"category":3860,"changelog":3989,"compatibility":3990,"created_at":3992,"description":3993,"documentation":3994,"extension":34,"github":3995,"icon":3996,"issues":3997,"key":3998,"latest_version":3999,"license":5,"maintainers":4000,"meta":4002,"monthly_downloads":4003,"name":3988,"navigation":191,"path":4004,"pypi":3998,"python_compatibility":4005,"python_compatibility_raw":3797,"repo":4007,"seo":4008,"sponsor":3638,"stars":4009,"stem":4010,"type":3748,"updated_at":4011,"website":3994,"__hash__":4012},"plugins\u002Fplugins\u002Flitestar-vite.yml","Litestar Vite","https:\u002F\u002Flitestar-org.github.io\u002Flitestar-vite\u002Flatest\u002Fchangelog",{"litestar":3991},">=2.22.0","2023-10-04T03:45:35","Vite plugin for Litestar","https:\u002F\u002Flitestar-org.github.io\u002Flitestar-vite\u002F","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-vite","litestar-vite.svg","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Flitestar-vite\u002Fissues\u002F","litestar-vite","0.26.1",[4001],{"name":3729,"github":3730,"avatar":3731},{},26430,"\u002Fplugins\u002Flitestar-vite",{"raw":3797,"specifier_set":3797,"compatible":4006},[3739,3740,3741,3742,3743],"litestar-org\u002Flitestar-vite",{"description":3993},34,"plugins\u002Flitestar-vite","2026-07-06T21:00:43","haSjqJcpdznmQXC4zO8C9Dz4dh8maFwZ7P3icANhAAs",{"id":4014,"title":4015,"body":5,"category":3716,"changelog":5,"compatibility":4016,"created_at":4017,"description":4018,"documentation":4019,"extension":34,"github":4020,"icon":3814,"issues":4021,"key":4022,"latest_version":4023,"license":5,"maintainers":4024,"meta":4026,"monthly_downloads":4027,"name":4028,"navigation":191,"path":4029,"pypi":4022,"python_compatibility":4030,"python_compatibility_raw":4031,"repo":4033,"seo":4034,"sponsor":3638,"stars":4035,"stem":4036,"type":3748,"updated_at":4037,"website":4019,"__hash__":4038},"plugins\u002Fplugins\u002Fsqlspec.yml","Sqlspec",{"litestar":3991},"2024-10-30T00:48:46","SQL Experiments in Python","https:\u002F\u002Fsqlspec.dev\u002F","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Fsqlspec","https:\u002F\u002Fgithub.com\u002Flitestar-org\u002Fsqlspec\u002Fissues\u002F","sqlspec","0.56.2",[4025],{"name":3729,"github":3730,"avatar":3731},{},21302,"SQLSpec","\u002Fplugins\u002Fsqlspec",{"raw":4031,"specifier_set":4031,"compatible":4032},"\u003C4.0,>=3.10",[3739,3740,3741,3742,3743],"litestar-org\u002Fsqlspec",{"description":4018},94,"plugins\u002Fsqlspec","2026-07-26T16:55:54","b6yj6rzpTZxSjxR5abuouset3GIGQZpII4bV2vEjjxQ",[4040,4052],{"id":4041,"title":4042,"body":5,"description":5,"extension":34,"image":4043,"meta":4046,"navigation":191,"path":4047,"seo":4048,"stem":4049,"url":4050,"__hash__":4051},"sponsors\u002Fsponsors\u002F1.scalar.yml","Scalar",{"src":4044,"alt":4045},"scalar.png","Description of image",{},"\u002Fsponsors\u002Fscalar",{"title":4042},"sponsors\u002F1.scalar","https:\u002F\u002Fscalar.com\u002F","2uby_qZ23Zc1vxQGmqrF3imBcXZe9mXTvTY6XA1-AdY",{"id":4053,"title":4054,"body":5,"description":5,"extension":34,"image":4055,"meta":4057,"navigation":191,"path":4058,"seo":4059,"stem":4060,"url":4061,"__hash__":4062},"sponsors\u002Fsponsors\u002F2.telemetry-sports.yml","Telemetry Sports",{"src":4056,"alt":4045},"telemetry_sports.jpg",{},"\u002Fsponsors\u002Ftelemetry-sports",{"title":4054},"sponsors\u002F2.telemetry-sports","https:\u002F\u002Ftelemetrysports.com\u002F","wg2dDK6dh1umE4ZNzmMGtrt-WxqoqOqJhoHyW7Fgbi0",{"data":4064,"body":4065},{},{"type":109,"children":4066},[4067],{"type":112,"tag":4068,"props":4069,"children":4070},"p",{},[4071],{"type":143,"value":3577},{"v3":4073,"v4":4074},"3.21.10","4.5.1",1785155662000]