Ingest is a server framework built around five ideas:
- a single server model that works across local and serverless runtimes
- an event-driven request lifecycle
- multiple ways to define routes
- optional composition through plugins and routers
- route metadata that tools can inspect
Ingest is strongest when you want to:
- keep application code close to HTTP concerns
- compose behavior through plugins instead of a large application container
- move between Node HTTP and WHATWG-style runtimes without rewriting your app model
- choose the route organization style that fits the project
- expose route structure to build or deployment tooling
At a high level, an Ingest app works like this:
- Create a
server(). - Register routes, hooks, and plugins.
- Let an adapter turn runtime input into Ingest
RequestandResponseobjects. - Run the request through lifecycle events and route resolution.
- Return or dispatch the response in the current runtime.
If you are new to the project, read in this order:
Then move into Guides for implementation tasks or API Reference for exact signatures.