CodeVetter
← All unpacks
CodeVetter · Repo Unpack evidence

honojs/hono

Scanned commit f23b146afc dated 2026-10-01 — last upstream commit. Generated by codevetter 1.15.0 on 2026-10-02.

github.com/honojs/hono ↗ · 561 files · 3.9 MB

Hono - means flame🔥 in Japanese - is a small, simple, and ultrafast web framework built on Web Standards.

Deep analysis by cli:codex via the codex CLI on 2026-10-02 (runtime not recorded) — every claim below links to its cited source files. Source inspection; upstream code and tests were not executed.

Overview

Hono is a TypeScript web framework whose application boundary is a standard Request-to-Response fetch handler. It serves developers building APIs and web applications across JavaScript runtimes, with interchangeable routers, composable middleware, typed clients, JSX rendering, streaming, and static generation. At commit f23b146afcec63606144cde50b5fbd360dd60238, the repository also maintains independently packaged runtime adapters alongside deprecated in-package adapters.

System map

The public entrypoint exports Hono and supporting types, while HonoBase owns registration and dispatch. Request and Context wrap standard web objects, and runtime adapters translate platform boundaries. Storage behavior inspected here belongs to optional cache and SSG facilities. Distribution includes npm ESM/CJS/declarations, JSR source exports, and separate adapter packages.

Feature catalog

The user-facing product is a framework API and exported modules rather than a fixed application route set. Routing, responses, middleware and validation form the server surface. Typed clients, JSX, streaming, WebSockets and static generation extend it into full web application development. The export-map inventory is broader than the implementation paths examined in detail.

All 13 feature catalog claims →

Data flow

Incoming Requests pass through path extraction and router matching into a per-request Context. Middleware and validators progressively attach state before response construction. Clients and adapters serialize or translate data at the outer boundaries. Cache writes and SSG files are separate optional output paths with different ownership and lifetime.

Behavior traces

Source reads followed registration and first-request routing, validated requests, cache persistence, Lambda translation and static generation. These traces describe function order and branches rather than executed observations. The default router becomes fixed after its first match. SSG executes application handlers as part of both route discovery and output production.

Testing signals

Tests and CI were inspected, not executed; no passing result or measured coverage is asserted. The bounded inspection found Vitest unit/type tests, JSDOM rendering tests, runtime projects and adapter suites. CI schedules build, checks and several runtime jobs, but configured jobs are not execution evidence. Mocked platform tests and coverage exclusions limit what these sources establish.

All 13 testing signals claims →

Risk map

These are source observations and explicitly labeled hypotheses, not confirmed vulnerabilities. Authentication, outbound fetch, file access, body consumption and response caching are sensitive boundaries. Shared routing state and duplicated adapter generations increase compatibility concerns. Partial test inspection cannot establish that any critical flow is wholly untested.

All 15 risk map claims →

Extension points

Hono extends chiefly through handlers, middleware, injectable routers and explicit exported modules. Runtime bindings and adapters keep platform concerns outside core dispatch. Factory and validator APIs preserve types while allowing application-specific behavior. SSG has an explicit ordered plugin interface, and build plugins enforce distribution conventions.

Contributor handoff

Tests and CI were inspected, not executed, and this brief is a bounded inventory rather than exhaustive coverage. Begin edits from the relevant runtime path and its colocated tests, preserving public typing and packaging contracts. Adapter changes require attention to both separate packages and deprecated compatibility surfaces. The original task authorizes read/search only; the commands described here are references for a later authorized implementation task.

Languages

LanguageFilesShare of source
TypeScript42199%
JSON48docs/config
Markdown18docs/config
YAML15docs/config
HTML4docs/config
JavaScript20%
Shell10%
TOML10%

Start reading here

Probable source entrypoint: src/ — inferred from the directory tree and manifest, not the upstream docs.

Source roots

src/ (312 files)

Source layout — src/

PathFiles
src/middleware/58

Repository structure

Top-level pathFiles
src/312
adapters/111
benchmarks/67
runtime-tests/20
.github/12
perf-measures/12
docs/8

Docs found: README.mddocs/CODE_OF_CONDUCT.mddocs/CONTRIBUTING.mddocs/MAINTAINING.mddocs/MIGRATION.md

Package

package.json — hono v4.13.12, 22 declared dependencies.

@hono/node-server@types/jsdom@types/node@types/ws@typescript/native-preview@vitest/coverage-v8bun-typeseditorconfig-checkeresbuildjsdommswnp

CI & config entrypoints

Structural health signals

Average score 8.3/10 across 96 analyzed source files; 7 hotspots surfaced.

These are deterministic review leads — size, churn, and structural signals — not proof of a bug in this project.

Recent history