Scope
Closes the second + third bullet of #421's acceptance list:
- A 30-line Hono program (routing + JSON request/response + one middleware — e.g. a logger or a basic auth header check) compiles via `perry compile`, produces a single-file native binary, serves real HTTP traffic, and matches the same program under `node --experimental-strip-types` byte-for-byte for response bodies/headers.
- At least one official Hono middleware (`hono/cors` or `hono/logger`) verified end-to-end.
Blocked on
#485 (class-field arrow methods on inherited classes don't apply across compilePackages). Hono's request/response dispatch chain is built entirely from arrow-class-fields on `HonoBase`; until those get applied to `new Hono()` instances, no real HTTP traffic can flow.
Plan after #485 lands
- Write `test-hono-min.ts` (30 lines): `new Hono() → app.get('/', json) → app.use('*', logger) → app.fetch(req)`.
- Compile + run `./test-hono-min` listening on a free port.
- Curl real HTTP traffic, diff response body + headers against `node --experimental-strip-types test-hono-min.ts`.
- Repeat with `hono/cors`.
- Add to parity test suite.
What stays out of scope
The full `@hono/perry-server` adapter is the fourth bullet of #421's acceptance — separate ticket since it's substantial work (signal handling, graceful shutdown, hyper integration, docs).
Scope
Closes the second + third bullet of #421's acceptance list:
Blocked on
#485 (class-field arrow methods on inherited classes don't apply across compilePackages). Hono's request/response dispatch chain is built entirely from arrow-class-fields on `HonoBase`; until those get applied to `new Hono()` instances, no real HTTP traffic can flow.
Plan after #485 lands
What stays out of scope
The full `@hono/perry-server` adapter is the fourth bullet of #421's acceptance — separate ticket since it's substantial work (signal handling, graceful shutdown, hyper integration, docs).