This is the main entrypoint of the server. It is used for every server and allow you to run either in serverless mode or as a long running server.
If you want to better understand how to implement your own Wrapper, the easiest way would be to take a look at one of the existing included Wrapper (opens in a new tab).
Couple of things to note :
- If you want to use streaming (for the
noderuntime of next), you'll need to create aStreamCreatorand pass it to thehandler. You can find some example in the node (opens in a new tab) or aws-lambda-streaming (opens in a new tab) wrapper. - If you don't use streaming (like in the default
aws-lambdawrapper), you may still need to provide a fakeStreamCreatorto thehandlerto avoid a weird issue with Node itself (see here (opens in a new tab) for an example and a more thorough explanation). - If you use the
edgeruntime of Next (either for the external middleware or for anedgeroute or page), you don't need theStreamCreatorat all. - If you are in a serverless environment and it supports
waitUntil, you should pass it to the handler as it is done in the cloudflare-edge wrapper (opens in a new tab). This might not be necessary depending on where you run it (for example theaws-lambda-streamingor thenodewrapper doesn't need it.)
Included Wrappers
aws-lambda
The aws-lambda Wrapper is the default wrapper for AWS Lambda. It is used by default if you don't provide any Wrapper in your configuration.
Features
- Streaming
- Proper support for
waitUntil
aws-lambda-streaming
The aws-lambda-streaming Wrapper is a wrapper that allows you to use streaming in AWS Lambda. Streaming must be enabled for this lambda.
Features
- Streaming
- Proper support for
waitUntil
cloudflare-edge
The cloudflare-edge Wrapper is the wrapper for Cloudflare Workers. It should be used for the external middleware and for the edge runtime of Next.
Features
- Streaming
- Proper support for
waitUntil
cloudflare-node
The cloudflare-node Wrapper is the wrapper for Cloudflare Workers. It should be used only with the node runtime of Next and if you use @opennextjs/cloudflare.
Features
- Streaming
- Proper support for
waitUntil
node
The node Wrapper is the wrapper for classic Node.js Server. This one is a long running server.
Features
- Streaming
- Proper support for
waitUntil
express-dev
The express-dev Wrapper is the wrapper for a classic Express server. It is a long running process and should be used for development purposes only.
Features
- Streaming
- Proper support for
waitUntil
dummy
The dummy Wrapper is a dummy implementation that will just forward the event and StreamCreator to the handler.
Features
- Streaming
- Proper support for
waitUntil