Skip to content

An ultra-efficient JavaScript server framework that runs anywhere - Node.js, Bun, or Deno - with unmatched flexibility and complete configurability for developers who refuse to sacrifice speed or control.

License

Notifications You must be signed in to change notification settings

vercube/vercube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Vercube - Unleash your server development.

Vercube

Next generation HTTP framework

Ask DeepWiki NPM Version GitHub License Codecov

An ultra-efficient JavaScript server framework that runs anywhere - Node.js, Bun, or Deno - with unmatched flexibility and complete configurability for developers who refuse to sacrifice speed or control.

Website β€’ Documentation

✨ Features

  • Declarative Routing - TypeScript decorators for clean, readable API endpoints
  • Dependency Injection - Built-in IoC container for testable, maintainable code
  • Runtime Agnostic - Runs on Node.js, Bun, and Deno with zero configuration
  • Type-Safe Validation - Standard Schema support (Zod, Valibot, ArkType)
  • High Performance - Native Request/Response handling, no middleware overhead
  • Zero Config - Sensible defaults, start coding immediately
  • Modular Architecture - Auth, Logger, Storage, WebSockets, Serverless, and more

πŸš€ Quick Start

Create a New Project

# pnpm
pnpm create vercube@latest

# npm
npx create-vercube@latest

# bun
bun create vercube

Start Development Server

pnpm dev

Open http://localhost:3000 - you're ready to go! πŸš€

Try It Online

Open in StackBlitz Open in CodeSandbox

πŸ“ Example

import { Controller, Get, Post, Body, Param } from '@vercube/core';
import { Inject } from '@vercube/di';
import { z } from 'zod';

const CreateUserSchema = z.object({
  name: z.string().min(2),
  email: z.string().email(),
});

type CreateUserDto = z.infer<typeof CreateUserSchema>;

@Controller('/users')
export class UserController {
  @Inject(UserService)
  private userService!: UserService;

  @Get('/')
  async getUsers() {
    return this.userService.findAll();
  }

  @Get('/:id')
  async getUser(@Param('id') id: string) {
    return this.userService.findById(id);
  }

  @Post('/')
  async createUser(@Body({ validationSchema: CreateUserSchema }) data: CreateUserDto) {
    return this.userService.create(data);
  }
}

More examples available in the examples directory.

πŸ“¦ Packages

Package Description
@vercube/core Core framework with routing and middleware
@vercube/di Lightweight dependency injection container
@vercube/auth Authentication decorators and middleware
@vercube/logger Flexible logging with multiple drivers
@vercube/storage File storage abstraction layer
@vercube/ws WebSocket support
@vercube/serverless AWS Lambda & Azure Functions adapters

πŸ“– Documentation

Comprehensive documentation is available at vercube.dev

❀️ Contribute

We welcome contributions! Here's how you can help:

Every contribution matters. We maintain a welcoming environment for all contributors.

About

An ultra-efficient JavaScript server framework that runs anywhere - Node.js, Bun, or Deno - with unmatched flexibility and complete configurability for developers who refuse to sacrifice speed or control.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Contributors 11

Languages