Skip to content
v1.11.1 lançado · Ver no GitHub

Nestelia

Framework modular para Elysia e Bun.
Decoradores · DI · Módulos · Velocidade do Elysia.

Roteamento por Decoradores

@Controller, @Get, @Post, @Body e mais — uma API de decoradores limpa e declarativa rodando nativamente no Elysia.

O nestelia mapeia cada rota decorada diretamente para um handler do Elysia, fornecendo inferência de tipos e validação de schema na camada do 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
  }
}

Injeção de Dependência

DI baseado em construtor com escopos singleton, transient e request, alimentado por reflect-metadata.

Marque qualquer classe com @Injectable() e declare-a como provider — o nestelia resolve o grafo de dependências completo automaticamente na inicialização.

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
  }
}

Arquitetura Modular

Encapsule controllers, providers e imports em módulos coesos e reutilizáveis com estrutura clara e explícita.

Uma chamada para createElysiaApplication conecta todo o grafo de dependências e retorna uma instância Elysia pronta.

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

Performance

DX estilo NestJS na velocidade do Elysia — overhead quase zero de decoradores e 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 em requisições/segundo. GET / → texto puro 'Hello World'. 500 conexões, 10 segundos.

Lançado sob a licença MIT.