René's URL Explorer Experiment


Title: V6 pluggable router by marshallswain · Pull Request #3606 · feathersjs/feathers · GitHub

Open Graph Title: V6 pluggable router by marshallswain · Pull Request #3606 · feathersjs/feathers

X Title: V6 pluggable router by marshallswain · Pull Request #3606 · feathersjs/feathers

Description: Summary Introduces a pluggable routing system to assist users to upgrade: Add base router interface with framework-agnostic routing patterns Implement Express router adapter for gradual migration Implement Koa router adapter as Express alternative Update core application to support pluggable routers Include comprehensive test coverage for router implementations This enables users to incrementally reduce their Express dependency by switching to lighter alternatives while maintaining compatibility.

Open Graph Description: Summary Introduces a pluggable routing system to assist users to upgrade: Add base router interface with framework-agnostic routing patterns Implement Express router adapter for gradual migration ...

X Description: Summary Introduces a pluggable routing system to assist users to upgrade: Add base router interface with framework-agnostic routing patterns Implement Express router adapter for gradual migration ...

Opengraph URL: https://github.com/feathersjs/feathers/pull/3606

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:44b7fca7-0fc2-d02a-bab8-a2642ab035e3
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id8654:3BE27E:2BAF35D:3C08F3C:6964E7E6
html-safe-nonce508988159314bef3c098991876d4f5b9615c4b1f3b451cf00b1fcbf9c8d49d07
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4NjU0OjNCRTI3RToyQkFGMzVEOjNDMDhGM0M6Njk2NEU3RTYiLCJ2aXNpdG9yX2lkIjoiNzg4OTE4MTkxMTczNDg3MjAzOCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac43cf35a148c4fd8dcd8cd6901fb6cf00e0f49f87c0e64f4e218514ef8c88c883
hovercard-subject-tagpull_request:2797718871
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/feathersjs/feathers/pull/3606/files
twitter:imagehttps://avatars.githubusercontent.com/u/128857?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/128857?s=400&v=4
og:image:altSummary Introduces a pluggable routing system to assist users to upgrade: Add base router interface with framework-agnostic routing patterns Implement Express router adapter for gradual migration ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None3c30097417ecb9dfdab6b2e8bc7dc38d73e183d6ad48f94cb69e4a5daa2dbb87
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/feathersjs/feathers git https://github.com/feathersjs/feathers.git
octolytics-dimension-user_id5321853
octolytics-dimension-user_loginfeathersjs
octolytics-dimension-repository_id2609642
octolytics-dimension-repository_nwofeathersjs/feathers
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id2609642
octolytics-dimension-repository_network_root_nwofeathersjs/feathers
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release69fc54a84c74307369dba42af5401200531d116e
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/feathersjs/feathers/pull/3606/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeathersjs%2Ffeathers%2Fpull%2F3606%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeathersjs%2Ffeathers%2Fpull%2F3606%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=feathersjs%2Ffeathers
Reloadhttps://github.com/feathersjs/feathers/pull/3606/files
Reloadhttps://github.com/feathersjs/feathers/pull/3606/files
Reloadhttps://github.com/feathersjs/feathers/pull/3606/files
feathersjs https://github.com/feathersjs
feathershttps://github.com/feathersjs/feathers
Please reload this pagehttps://github.com/feathersjs/feathers/pull/3606/files
Notifications https://github.com/login?return_to=%2Ffeathersjs%2Ffeathers
Fork 793 https://github.com/login?return_to=%2Ffeathersjs%2Ffeathers
Star 15.2k https://github.com/login?return_to=%2Ffeathersjs%2Ffeathers
Code https://github.com/feathersjs/feathers
Issues 124 https://github.com/feathersjs/feathers/issues
Pull requests 18 https://github.com/feathersjs/feathers/pulls
Discussions https://github.com/feathersjs/feathers/discussions
Actions https://github.com/feathersjs/feathers/actions
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/feathersjs/feathers/security
Please reload this pagehttps://github.com/feathersjs/feathers/pull/3606/files
Insights https://github.com/feathersjs/feathers/pulse
Code https://github.com/feathersjs/feathers
Issues https://github.com/feathersjs/feathers/issues
Pull requests https://github.com/feathersjs/feathers/pulls
Discussions https://github.com/feathersjs/feathers/discussions
Actions https://github.com/feathersjs/feathers/actions
Security https://github.com/feathersjs/feathers/security
Insights https://github.com/feathersjs/feathers/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Ffeathersjs%2Ffeathers%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Ffeathersjs%2Ffeathers%2Fissues%2Fnew%2Fchoose
marshallswainhttps://github.com/marshallswain
v6https://github.com/feathersjs/feathers/tree/v6
v6-pluggable-routerhttps://github.com/feathersjs/feathers/tree/v6-pluggable-router
Conversation 2 https://github.com/feathersjs/feathers/pull/3606
Commits 3 https://github.com/feathersjs/feathers/pull/3606/commits
Checks 6 https://github.com/feathersjs/feathers/pull/3606/checks
Files changed https://github.com/feathersjs/feathers/pull/3606/files
Please reload this pagehttps://github.com/feathersjs/feathers/pull/3606/files
V6 pluggable router https://github.com/feathersjs/feathers/pull/3606/files#top
Show all changes 3 commits https://github.com/feathersjs/feathers/pull/3606/files
d4307a3 feat: Add pluggable router to reduce Express dependency marshallswain Sep 4, 2025 https://github.com/feathersjs/feathers/pull/3606/commits/d4307a34eca11636ef9c291cae6d5112c7bf95ec
1a7b51e fix(routing): optimize lookup performance and expose router options marshallswain Dec 19, 2025 https://github.com/feathersjs/feathers/pull/3606/commits/1a7b51e72b261410d34bfaad328dc11d6f8448af
a8d3619 fix(routing): add type check for non-string paths in lookup marshallswain Dec 19, 2025 https://github.com/feathersjs/feathers/pull/3606/commits/a8d36191e0aa88f859c04e70dc1cd16b860945ee
Clear filters https://github.com/feathersjs/feathers/pull/3606/files
Please reload this pagehttps://github.com/feathersjs/feathers/pull/3606/files
Please reload this pagehttps://github.com/feathersjs/feathers/pull/3606/files
package-lock.json https://github.com/feathersjs/feathers/pull/3606/files#diff-053150b640a7ce75eff69d1a22cae7f0f94ad64ce9a855db544dda0929316519
application.ts https://github.com/feathersjs/feathers/pull/3606/files#diff-52e395dc6b28077aefd1ed36163fd5c50f7e23ca71dd56c8a8a08d393fd46684
declarations.ts https://github.com/feathersjs/feathers/pull/3606/files#diff-745f92b660143e99b5c47a30c541165a3ea8a5495b4654e09185afd6acf1072a
router.ts https://github.com/feathersjs/feathers/pull/3606/files#diff-9a9767ee7f638674199d646c95b098da6e4605be57671433792691dce4db8b4e
README.md https://github.com/feathersjs/feathers/pull/3606/files#diff-d173b119ff0029569dd06c9687656691b6e3c60397f1592086205f55fbe48ff9
package.json https://github.com/feathersjs/feathers/pull/3606/files#diff-59a9a3c65f0a725b11e3b7899d1afac9cd7b03a5e239b3d246a6a8207900aa9e
base-router.test.ts https://github.com/feathersjs/feathers/pull/3606/files#diff-42a4f052fd92c35931653d5b3f1c697a463cdf927009513cff6cb822723215cc
base-router.ts https://github.com/feathersjs/feathers/pull/3606/files#diff-0251f14c2217fea6bd6ea29296a8fd92808a24273202555f9423e46a16b0066f
express-router.test.ts https://github.com/feathersjs/feathers/pull/3606/files#diff-af9dd0dcecfdb14ce15ea2db80004b9d562394d689cdba946efd95a65966fb7d
express-router.ts https://github.com/feathersjs/feathers/pull/3606/files#diff-b1e70d23577f147666c6b21b1420aaf4fba40042e67d5cd65ed13c14ea3b95fe
index.ts https://github.com/feathersjs/feathers/pull/3606/files#diff-092867f4a3c808e653be178a8bf05bce34deaceaa2c1093575d65e95790c7146
koa-router.test.ts https://github.com/feathersjs/feathers/pull/3606/files#diff-8b94d7dc33370d7b00bb3159f3b6065844828fcd43b6e3128b21242a33e17ee7
koa-router.ts https://github.com/feathersjs/feathers/pull/3606/files#diff-c38a3617d5ba61e55ab1414ee06862d7377f694bbabca123894b9ffdc08cf5e8
path-to-regexp.d.ts https://github.com/feathersjs/feathers/pull/3606/files#diff-e78b1460ecbaf91e19f91af60d9ab031c76f505409d43fe5a1b47e965c9b312f
tsconfig.json https://github.com/feathersjs/feathers/pull/3606/files#diff-d267537ad210a6a64c5b6305c3fd1a73e248f59577853314af8a9f9e9f0fdcf8
package-lock.jsonhttps://github.com/feathersjs/feathers/pull/3606/files#diff-053150b640a7ce75eff69d1a22cae7f0f94ad64ce9a855db544dda0929316519
View file https://github.com/feathersjs/feathers/blob/a8d36191e0aa88f859c04e70dc1cd16b860945ee/package-lock.json
Open in desktop https://desktop.github.com
Please reload this pagehttps://github.com/feathersjs/feathers/pull/3606/files
packages/feathers/src/application.tshttps://github.com/feathersjs/feathers/pull/3606/files#diff-52e395dc6b28077aefd1ed36163fd5c50f7e23ca71dd56c8a8a08d393fd46684
View file https://github.com/feathersjs/feathers/blob/a8d36191e0aa88f859c04e70dc1cd16b860945ee/packages/feathers/src/application.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feathersjs/feathers/pull/3606/{{ revealButtonHref }}
https://github.com/feathersjs/feathers/pull/3606/files#diff-52e395dc6b28077aefd1ed36163fd5c50f7e23ca71dd56c8a8a08d393fd46684
https://github.com/feathersjs/feathers/pull/3606/files#diff-52e395dc6b28077aefd1ed36163fd5c50f7e23ca71dd56c8a8a08d393fd46684
https://github.com/feathersjs/feathers/pull/3606/files#diff-52e395dc6b28077aefd1ed36163fd5c50f7e23ca71dd56c8a8a08d393fd46684
packages/feathers/src/declarations.tshttps://github.com/feathersjs/feathers/pull/3606/files#diff-745f92b660143e99b5c47a30c541165a3ea8a5495b4654e09185afd6acf1072a
View file https://github.com/feathersjs/feathers/blob/a8d36191e0aa88f859c04e70dc1cd16b860945ee/packages/feathers/src/declarations.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feathersjs/feathers/pull/3606/{{ revealButtonHref }}
https://github.com/feathersjs/feathers/pull/3606/files#diff-745f92b660143e99b5c47a30c541165a3ea8a5495b4654e09185afd6acf1072a
https://github.com/feathersjs/feathers/pull/3606/files#diff-745f92b660143e99b5c47a30c541165a3ea8a5495b4654e09185afd6acf1072a
https://github.com/feathersjs/feathers/pull/3606/files#diff-745f92b660143e99b5c47a30c541165a3ea8a5495b4654e09185afd6acf1072a
packages/feathers/src/router.tshttps://github.com/feathersjs/feathers/pull/3606/files#diff-9a9767ee7f638674199d646c95b098da6e4605be57671433792691dce4db8b4e
View file https://github.com/feathersjs/feathers/blob/a8d36191e0aa88f859c04e70dc1cd16b860945ee/packages/feathers/src/router.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feathersjs/feathers/pull/3606/{{ revealButtonHref }}
https://github.com/feathersjs/feathers/pull/3606/files#diff-9a9767ee7f638674199d646c95b098da6e4605be57671433792691dce4db8b4e
https://github.com/feathersjs/feathers/pull/3606/files#diff-9a9767ee7f638674199d646c95b098da6e4605be57671433792691dce4db8b4e
https://github.com/feathersjs/feathers/pull/3606/files#diff-9a9767ee7f638674199d646c95b098da6e4605be57671433792691dce4db8b4e
packages/routing/README.mdhttps://github.com/feathersjs/feathers/pull/3606/files#diff-d173b119ff0029569dd06c9687656691b6e3c60397f1592086205f55fbe48ff9
View file https://github.com/feathersjs/feathers/blob/a8d36191e0aa88f859c04e70dc1cd16b860945ee/packages/routing/README.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feathersjs/feathers/pull/3606/{{ revealButtonHref }}
packages/routing/package.jsonhttps://github.com/feathersjs/feathers/pull/3606/files#diff-59a9a3c65f0a725b11e3b7899d1afac9cd7b03a5e239b3d246a6a8207900aa9e
View file https://github.com/feathersjs/feathers/blob/a8d36191e0aa88f859c04e70dc1cd16b860945ee/packages/routing/package.json
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feathersjs/feathers/pull/3606/{{ revealButtonHref }}
packages/routing/src/base-router.test.tshttps://github.com/feathersjs/feathers/pull/3606/files#diff-42a4f052fd92c35931653d5b3f1c697a463cdf927009513cff6cb822723215cc
View file https://github.com/feathersjs/feathers/blob/a8d36191e0aa88f859c04e70dc1cd16b860945ee/packages/routing/src/base-router.test.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feathersjs/feathers/pull/3606/{{ revealButtonHref }}
packages/routing/src/base-router.tshttps://github.com/feathersjs/feathers/pull/3606/files#diff-0251f14c2217fea6bd6ea29296a8fd92808a24273202555f9423e46a16b0066f
View file https://github.com/feathersjs/feathers/blob/a8d36191e0aa88f859c04e70dc1cd16b860945ee/packages/routing/src/base-router.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feathersjs/feathers/pull/3606/{{ revealButtonHref }}
Please reload this pagehttps://github.com/feathersjs/feathers/pull/3606/files
Please reload this pagehttps://github.com/feathersjs/feathers/pull/3606/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.