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.
Original work inspired by m8a-io
npm i @pw-tech/platform-hyper-express
Use HyperExpressAdapter for NestJS HTTP Adapter. Must require @nestjs/platform-express
in dependencies.
import { NestFactory } from '@nestjs/core';
import { HyperExpressAdapter, NestHyperExpressApplication } from '@pw-tech/platform-hyper-express';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create<NestHyperExpressApplication>(AppModule, new HyperExpressAdapter({ max_body_length: 5 * 1024 * 1024 }), { bufferLogs: true });
await app.listen(3000);
}
bootstrap();
TBA
- Node
>=16
Node 22 is also supported.
@pw-tech/platform-hyper-express is fully compatabile with dd-trace and opentelememetry APM using our opentelemetry-instrumentaion-hyper-express package. Checkout the above package for more info on usage.
@pw-tech/platform-hyper-express
is mostly compatible with@pw-tech/platform-hyper-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, 20 and 22 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
.
- Open an
Issue
with details about what led up to the problem including error traces, route information, etc.
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.