Overview
Elysia is designed to be modular and lightweight.
Following the same idea as Arch Linux (btw, I use Arch):
Design decisions are made on a case-by-case basis through developer consensus
This is to ensure developers end up with a performant web server they intend to create. By extension, Elysia includes pre-built common pattern plugins for convenient developer usage:
Official plugins:
- Bearer - retrieve Bearer token automatically
- CORS - set up Cross-origin resource sharing (CORS)
- Cron - set up cron job
- Eden - end-to-end type safety client for Elysia
- GraphQL Apollo - run Apollo GraphQL on Elysia
- GraphQL Yoga - run GraphQL Yoga on Elysia
- HTML - handle HTML responses
- JWT - authenticate with JWTs
- OpenTelemetry - add support for OpenTelemetry
- Server Timing - audit performance bottlenecks with the Server-Timing API
- Static - serve static files/folders
- Stream - integrate response streaming and server-sent events (SSEs)
- Swagger - generate Swagger documentation
- tRPC - support tRPC
- WebSocket - support WebSockets
Community plugins:
- BunSai - full-stack agnostic framework for the web, built upon Bun and Elysia
- Create ElysiaJS - scaffolding your Elysia project with the environment with easy (help with ORM, Linters and Plugins)!
- Lucia Auth - authentication, simple and clean
- Elysia Clerk - unofficial Clerk authentication plugin
- Elysia Polyfills - run Elysia ecosystem on Node.js and Deno
- Vite server - plugin which start and decorate
vite
dev server indevelopment
and inproduction
mode serve static (if it needed) - Vite - serve entry HTML file with Vite's scripts injected
- Nuxt - easily integrate elysia with nuxt!
- Remix - use Remix with
HMR
support (powered byvite
)! Close a really long-standing plugin request #12 - Connect middleware - plugin which allows you to use
express
/connect
middleware directly in Elysia! - Elysia Helmet - secure Elysia apps with various HTTP headers
- Vite Plugin SSR - Vite SSR plugin using Elysia server
- OAuth 2.0 - An plugin for OAuth 2.0 Authorization Flow with more than 42 providers and type-safety!
- OAuth2 - handle OAuth 2.0 authorization code flow
- Elysia OpenID Client - OpenID client based on openid-client
- Rate Limit - simple, lightweight rate limiter
- Logysia - classic logging middleware
- Logestic - An advanced and customisable logging library for ElysiaJS
- Logger - pino-based logging middleware
- Elylog - simple stdout logging library with some customization
- Elysia Lambda - deploy on AWS Lambda
- Decorators - use TypeScript decorators
- Autoload - filesystem router based on a directory structure that generates types for Eden with
Bun.build
support - Msgpack - allows you to work with MessagePackXML - allows you to work with XML
- Autoroutes - filesystem routes
- Group Router - filesystem and folder-based router for groups
- Basic Auth - basic HTTP authentication
- ETag - automatic HTTP ETag generation
- Basic Auth - basic HTTP authentication (using
request
event) - i18n - i18n wrapper based on i18next
- Elysia Request ID - add/forward request IDs (
X-Request-ID
or custom) - Elysia HTMX - context helpers for HTMX
- Elysia HMR HTML - reload HTML files when changing any file in a directory
- Elysia Inject HTML - inject HTML code in HTML files
- Elysia HTTP Error - return HTTP errors from Elysia handlers
- Elysia Http Status Code - integrate HTTP status codes
- NoCache - disable caching
- Elysia Tailwind - compile Tailwindcss in a plugin.
- Elysia Compression - compress response
- Elysia IP - get the IP Address
- OAuth2 Server - developing an OAuth2 Server with Elysia
- Elysia Flash Messages - enable flash messages
- Elysia AuthKit - unnoficial WorkOS' AuthKit authentication
- Elysia Error Handler - simpler error handling
- Elysia env - typesafe environment variables with typebox
- Elysia Drizzle Schema - Helps to use Drizzle ORM schema inside elysia swagger model.
- Unify-Elysia - Unify error code for Elysia
- Unify-Elysia-GQL - Unify error code for Elysia GraphQL Server (Yoga & Apollo)
- Elysia Auth Drizzle - Library who handle authentification with JWT (Header/Cookie/QueryParam).
- graceful-server-elysia - Library inspired by graceful-server.
- Logixlysia - A beautiful and simple logging middleware for ElysiaJS with colors and timestamps.
- Elysia Fault - A simple and customizable error handling middleware with the possibility of creating your own HTTP errors
- Elysia Compress - ElysiaJS plugin to compress responses inspired by @fastify/compress
- @labzzhq/compressor - Compact Brilliance, Expansive Results: HTTP Compressor for Elysia and Bunnyhop with gzip, deflate and brotli support.
- Elysia Accepts - Elysia plugin for accept headers parsing and content negotiation
- Elysia Compression - Elysia plugin for compressing responses
- Elysia Logger - Elysia plugin for logging HTTP requests and responses inspired by hono/logger
- Elysia CQRS - Elysia plugin for CQRS pattern
- Nice Logger - Not the nicest, but a pretty nice and sweet logger for Elysia.
Complementaray projects:
- prismabox - Generator for typebox schemes based on your database models, works well with elysia
If you have a plugin written for Elysia, feel free to add your plugin to the list by clicking Edit this page on GitHub below 👇