nestelia
nestelia는 Elysia와 Bun 위에 구축된 모듈형 데코레이터 기반 프레임워크입니다. 구조화된 서버사이드 애플리케이션 구축을 위한 데코레이터, 의존성 주입, 모듈, 라이프사이클 훅을 제공합니다.
WARNING
nestelia는 현재 활발히 개발 중입니다. 안정 릴리스 전에 API가 변경될 수 있습니다.
왜 nestelia인가?
Elysia는 가장 빠른 Bun 네이티브 HTTP 프레임워크 중 하나입니다. nestelia는 Elysia의 성능을 희생하지 않으면서 그 위에 구조화된 모듈형 아키텍처를 추가합니다.
- 데코레이터 —
@Controller,@Get,@Post,@Body,@Param등 - 의존성 주입 — 싱글톤, 트랜지언트, 요청 스코프를 지원하는 생성자 기반 DI
- 모듈 — 컨트롤러, 프로바이더, 임포트를 응집력 있는 단위로 캡슐화
- 라이프사이클 훅 —
OnModuleInit,OnApplicationBootstrap,OnModuleDestroy등 - 가드, 인터셉터, 파이프 — 요청 파이프라인 확장성
- 미들웨어 — 클래스 기반 및 함수형 미들웨어 지원
- 예외 처리 — 자동 에러 응답을 갖춘 내장 HTTP 예외
- TypeBox 검증 — Elysia의 네이티브 TypeBox 통합을 통한 스키마 기반 요청 검증
패키지
코어 외에도 nestelia는 선택적 패키지를 제공합니다:
| 패키지 | 설명 |
|---|---|
nestelia/scheduler | 크론 작업, 인터벌, 타임아웃 |
nestelia/microservices | Redis, RabbitMQ, TCP 트랜스포트 |
nestelia/apollo | Apollo GraphQL 코드 우선 통합 |
nestelia/passport | Passport.js 인증 전략 |
nestelia/testing | 프로바이더 오버라이드를 갖춘 격리 테스트 모듈 |
nestelia/cache | 데코레이터를 이용한 HTTP 응답 캐싱 |
nestelia/rabbitmq | 고급 RabbitMQ 메시징 |
nestelia/graphql-pubsub | GraphQL 구독을 위한 Redis PubSub |
빠른 예제
typescript
import { createElysiaApplication, Controller, Get, Module, Injectable, Inject } from "nestelia";
@Injectable()
class GreetService {
hello() {
return { message: "Hello from nestelia!" };
}
}
@Controller("/greet")
class GreetController {
constructor(@Inject(GreetService) private greet: GreetService) {}
@Get("/")
sayHello() {
return this.greet.hello();
}
}
@Module({
controllers: [GreetController],
providers: [GreetService],
})
class AppModule {}
const app = await createElysiaApplication(AppModule);
app.listen(3000);Claude Code 스킬
nestelia를 위한 Claude Code 스킬을 사용할 수 있습니다. AI 어시스턴트에서 직접 스캐폴딩 템플릿, 데코레이터 사용법, 모범 사례를 제공합니다.
bash
npx skills add nestelia/nestelia설치 후, Claude Code는 nestelia로 작업할 때 올바른 패턴을 자동으로 사용합니다.