Skip to content
v1.11.1 lanzado · Ver en GitHub

Nestelia

Framework modular para Elysia y Bun.
Decoradores · DI · Módulos · Velocidad de Elysia.

Enrutamiento por Decoradores

@Controller, @Get, @Post, @Body y más — una API de decoradores limpia y declarativa que corre nativamente en Elysia.

nestelia mapea cada ruta decorada directamente a un handler de Elysia, dando inferencia de tipos completa y validación de esquemas en la capa del framework.

users.controller.ts
import { Controller, Get, Post, Body } from 'nestelia'
import { CreateUserDto } from './dto'

@Controller('/users')
export class UsersController {

  @Get()
  findAll() {
    return { users: [] }
  }

  @Post()
  create(@Body() dto: CreateUserDto) {
    return dto
  }
}

Inyección de Dependencias

DI basado en constructor con alcances singleton, transient y request, impulsado por reflect-metadata.

Marca cualquier clase con @Injectable() y declárala como provider — nestelia resuelve el grafo de dependencias completo automáticamente al arrancar.

users.service.ts
import { Injectable } from 'nestelia'

@Injectable()
export class UsersService {
  private users: User[] = []

  async findAll(): Promise<User[]> {
    return this.users
  }

  async create(dto: CreateUserDto): Promise<User> {
    this.users.push(dto)
    return dto
  }
}

Arquitectura Modular

Encapsula controladores, proveedores e importaciones en módulos cohesivos y reutilizables con una estructura clara y explícita.

Una llamada a createElysiaApplication conecta todo el grafo de dependencias y devuelve una instancia Elysia lista para usar.

main.ts
import 'reflect-metadata'
import { createElysiaApplication } from 'nestelia'
import { AppModule } from './app.module'

const app = await createElysiaApplication(AppModule)

app.listen(3000)
// Listening on http://localhost:3000

Rendimiento

DX estilo NestJS a la velocidad de Elysia — overhead casi nulo de decoradores y DI.

1.7x faster than Fastify
1.9x faster than Express
2.3x faster than NestJS
ElysiaBun
74,395 reqs/s
NesteliaBun
71,703 reqs/s
FastifyNode
42,640 reqs/s
ExpressNode
37,825 reqs/s
NestJSNode
30,582 reqs/s
Medido en solicitudes/segundo. GET / → texto plano 'Hello World'. 500 conexiones, 10 segundos.

Publicado bajo la licencia MIT.