@nnmt/platform-hyper-express
v0.4.0
Published
Hyper-express Adapter for NestJS (@nnmt/platform-hyper-express)
Downloads
15
Maintainers
Readme
Hyper-express Adapter for NestJS
Motivation
platform-hyper-express
is NestJS HTTP Adapter
that implement hyper-express into NestJS.
hyper-express
aims to be a simple yet performant HTTP & Websocket Server.
Combined with the power of uWebsockets.js
- a Node.js binding of uSockets written in C++, platform-hyper-express
allows NestJS Developers to unlock higher throughput for their web applications with their existing hardware.
Installation
npm i @nnmt/platform-hyper-express
Usage
Use HyperExpressAdapter for NestJS HTTP Adapter. Must require @nestjs/platform-express
in dependencies.
// sample/nest-sample-1/src/main.ts
import { NestFactory } from '@nestjs/core';
import { HyperExpressAdapter } from '@nnmt/platform-hyper-express';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule, new HyperExpressAdapter());
await app.listen(3000);
}
bootstrap();
Or use @nnmt/platform-hyper-express
classes only to optimize hyper-express usage (Experimental).
// sample/nest-sample-2/src/main.ts
import { NestFactory } from '@nestjs/core';
import {
HyperExpressAdapter,
NestHyperExpressApplication,
} from '@nnmt/platform-hyper-express';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create<NestHyperExpressApplication>(
AppModule,
new HyperExpressAdapter(),
);
await app.listen(3000);
}
bootstrap();
Sample
- Sample projects are located in
/sample
directory. - Sample projects help developers to install/integrate
platform-hyper-express
into their NestJS projects. - Sample projects is not included in NPM package's source.
Encountering Problems?
@nnmt/platform-hyper-express
is mostly compatible with@nestjs/platform-express
but not 100% therefore you may encounter some middlewares not working out of the box. In this scenario, you must either write your own polyfill or omit the middleware to continue.- Currently uWebsockets.js supports only Node.js LTS versions 16, 18 and 20 on (glibc) Linux, macOS and Windows, on
Tier 1
platforms. - The uWebsockets.js version header is disabled by default. You may opt-out of this behavior by setting an environment variable called
KEEP_UWS_HEADER
to a truthy value such as1
ortrue
.
Still Having Problems?
- Open an
Issue
with details about what led up to the problem including error traces, route information, etc.
Testing Changes
To run platform-hyper-express functionality tests locally on your machine, you must follow the steps below.
- Clone the
platform-hyper-express
repository to your machine. - Initialize and pull any submodule(s) which are used throughout the tests.
- Run
npm install
in the root directory. - Run
npm install
in the/tests
directory. - Run
npm test
to run all tests with your local changes.