Litestar Vite
Litestar Vite connects the Litestar backend to a Vite toolchain. It supports SPA, Template, Inertia, and meta-framework workflows, and it can proxy Vite dev traffic through your ASGI port or run Vite directly.
Features
- One-port dev: proxies Vite HTTP + WS/HMR through Litestar on a single ASGI port by default.
- Framework-mode support: use
mode="framework"(aliasmode="ssr") for Astro, Nuxt, and SvelteKit. Litestar proxies everything except your API routes. - Production assets: reads the Vite manifest from
public/manifest.json(configurable) and serves underasset_url. - Type-safe frontends: optional OpenAPI/routes export plus
@hey-api/openapi-tsvia the Vite plugin. - Inertia support: Inertia v2/v3 protocol support with session middleware, script-element bootstrap by default, and optional SSR.
Install
pip install litestar-vite
npm install litestar-vite-plugin
Quick Start
from litestar import Litestar
from litestar_vite import VitePlugin
app = Litestar(plugins=[VitePlugin()])
litestar assets init --template vue
litestar assets install
litestar run --reload
VitePlugin() detects development and production behavior without manual VITE_DEV_MODE parsing. The effective
litestar run --host/--port values are also passed to the frontend environment and .litestar.json bridge.
Optional Granian native static serving
Granian 0.16+ can serve eligible production bundle files before the request enters Python:
from litestar import Litestar
from litestar_granian import GranianPlugin
from litestar_vite import VitePlugin
app = Litestar(plugins=[VitePlugin(), GranianPlugin(static="auto")])
This is an optimization, not a separate application configuration. The Litestar static route stays registered, so Uvicorn and other ASGI servers serve the same files. Granian automatically falls back to Litestar when assets are protected, customized, missing, or otherwise unsafe to intercept.
Native hits bypass ASGI middleware, guards, compression, custom headers, and Python access logging. Keep protected or customized assets on the Litestar fallback path. See the production guide for the server matrix and advanced configuration.
Documentation
- Get started: https://litestar-org.github.io/litestar-vite/latest/usage/index.html
- Framework guides: https://litestar-org.github.io/litestar-vite/latest/frameworks/index.html
- Inertia: https://litestar-org.github.io/litestar-vite/latest/frameworks/inertia/index.html
- API reference: https://litestar-org.github.io/litestar-vite/latest/reference/index.html
- Changelog: https://litestar-org.github.io/litestar-vite/latest/changelog.html
Common Commands
litestar assets init --template <name>: scaffold a frontend or framework applitestar assets install: install frontend dependencies with the configured executorlitestar assets build: build production assetslitestar assets serve: run the frontend toolchain directlylitestar assets generate-types: export OpenAPI, routes, and Inertia page-prop metadatalitestar assets doctor: inspect and optionally repair config drift
Development
# Install Python, docs, and JS dependencies; build package artifacts
make install && make build
# Run an example app
uv run litestar --app-dir examples/vue-inertia assets install
uv run litestar --app-dir examples/vue-inertia run
Replace vue-inertia with any other example app: vue, react, svelte, react-inertia, htmx, angular, astro, nuxt, or sveltekit.
litestar-vite now defaults Inertia apps to script-element bootstrap. Inertia v3 clients use that transport automatically; if you pin Inertia v2, keep createInertiaApp({ defaults: { future: { useScriptElementForInitialPage: true } } }) aligned in the browser entry and SSR entry when ssr=True is enabled, or opt back into the legacy data-page path with InertiaConfig(use_script_element=False).
Links
- Docs: https://litestar-org.github.io/litestar-vite/latest/
- Examples:
examples/(React, Vue, Svelte, HTMX, Inertia, Astro, Nuxt, SvelteKit, Angular) - Real-world example: litestar-fullstack
- Issues: https://github.com/litestar-org/litestar-vite/issues/
Metadata
Release files for litestar-vite 0.32.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| litestar_vite-0.32.0.tar.gz | 686.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| litestar_vite-0.32.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 996.5 kB
Release files / litestar_vite-0.32.0.tar.gz
| Download URL | litestar_vite-0.32.0.tar.gz |
|---|---|
| Size | 686.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a96c5ae29b3169c89d54c55150f1612bd95344dc882b1ecbee12b815e0edf55
|
|
BLAKE2b-256 checksum How to use checksums |
765c4cdce005d9a81b1b0e7ca395aff01505e36917c508aab2fb0a5f5b35e939
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / litestar_vite-0.32.0-py3-none-any.whl
| Download URL | litestar_vite-0.32.0-py3-none-any.whl |
|---|---|
| Size | 309.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
31ad3abfea7d9f3e4ff13b25d27badbd2774f0fe9f3776e7f8e1bfb16bc1a7ab
|
|
BLAKE2b-256 checksum How to use checksums |
80fe94a7e3981fb7173bcb0fc5439166bd5fd29f6bff00a0ab00cf0ef758c4f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency log