Back to Explore

delvedor/find-my-way

GitHub
1 updates · last 90 days1 watchersOpen source

Last release:

find-my-way is a fast, framework-independent HTTP router for Node.js. It matches routes using an internal radix tree (compact prefix tree) and supports route parameters, wildcards, and basic URL handling options like ignoring trailing or duplicate slashes. It is useful for building high-performance HTTP request routing with a simple API, including `on(...)` to register handlers and `lookup(...)` to dispatch requests.

Project status

  • Actively maintained: GitHub shows an upstream push on 2026-08-09, and the project has shipped multiple versioned updates in 2026 (v9.4.0 to v9.7.0), indicating ongoing maintenance rather than dormancy.
  • Update cadence (relative to today, 2026-08-12): Updates appear fairly regular, roughly every 1 to 3 months in 2026 (v9.4.0 on 2026-01-03, v9.5.0 on 2026-02-21, v9.6.0 on 2026-05-06, v9.7.0 on 2026-07-21).

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v9.7.0

    v9.7.0 primarily fixes edge cases in route lookup around regex matching (including backtracking behavior and empty captures), and improves correctness of optional parameter removal via off() for root fallback. It also adds a performance improvement in the host constraint strategy by caching regex lookups, and fixes async constraint error handling to ensure done is only called once. Dependency and CI updates are included (notably adding Node 26 to the test matrix and bumping dev tooling).

  • v9.6.0

    v9.6.0 adds a new `onMaxParamLength` option intended to support responding with HTTP 414 when `maxParamLength` is exceeded. It also includes a performance optimization for bitmask handler retrieval, plus several dependency and tooling bumps.

    Features
  • v9.5.0

    v9.5.0 primarily exposes additional URL/path normalization utilities (including duplicate slash removal and trailing slash trimming) and updates type definitions and README accordingly. It also fixes an issue where inherited properties on constraint objects could be processed during route matching.

    Features
  • v9.4.0

    v9.4.0 primarily adds a new public helper, `sanitizeUrlPath`, and updates CI to test against Node.js 24 while modernizing GitHub Actions versions. It also bumps several development dependencies and includes a dedicated test suite for the new URL sanitization behavior.

    Features
  • v9.3.0

    This release (v9.3.0) adds a Node.js-based test runner, introduces improved string and storage performance (including Map-based strategies and charCodeAt usage), and bumps some development and dependency tooling. It also updates TypeScript typings around query string parsing and fixes the missing done callback typing for Router.lookup.

    BreakingFeatures
  • v9.1.0

    v9.1.0 updates the router's built-in HTTP method list to include the QUERY method, aligning with Node.js http module behavior. The release notes describe this change explicitly as a fix.

  • v8.2.2

    v8.2.2 is published as a security release for CVE-2024-45813 (GHSA-rrr8-f88r-h8q6). The code changes focus on preventing catastrophic backtracking in the router's param-to-regex generation logic, and they also adjust how certain multi-parameter routes capture values.

    Security
  • v9.0.1

    v9.0.1 is labeled as a security release for CVE-2024-45813, with no detailed functional notes beyond the advisory link. The code changes show a ReDoS/backtracking-hardening update in the router’s parametric route matching, plus internal changes to how the `params` object is constructed and returned to handlers.

    Security
  • v9.0.0

    v9.0.0 updates find-my-way routing internals, switching compiled route parameter objects to a null-prototype (NullObject) representation, and adjusting trie behavior by dropping old nodes. The release notes are brief and mostly focus on these two items.

    BreakingSecurityFeatures
  • v8.2.0

    Release v8.2.0 focuses on CI and compatibility updates (Node versions, actions/checkout/setup-node bumps), plus router behavior improvements around constraints and optional parameters. It also updates internal imports (assert to node:assert) and expands test coverage, including new regression tests.

    BreakingFeatures