Inspired by Finicky: wanted to share and say thanks #523
expelledboy
started this conversation in
General
Replies: 1 comment 3 replies
-
|
Congratulations on the release!
|
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hi John,
I've used Finicky daily for years. Wanted to let you know I built a lighter sketch with the same philosophy, and to thank you for years of frictionless link routing.
The motivation was just wanting something leaner on the hot path and in memory. Finch resolves a URL in ~5µs and sits at ~17MB resident. The design is straight from Finicky: graduated match types (string, regex, or function), the opener context, the rewrite-vs-handlers split. Those are your ideas. I just rebuilt the runtime around them.
https://github.com/expelledboy/finch
Two things might be worth a look if you ever want to copy anything:
Marker-object helpers.
domain(),from(),strip()return plain data like{__type: "domain", hosts: [...]}instead of functions. The host walks the config tree at load time and compiles markers to nativeNSRegularExpressionandSetlookups. The hot path stays in Swift, and JS only runs for user-written(url, ctx) => ...predicates.Native JavaScriptCore instead of goja. macOS ships JSC, which evaluates ES2020+ directly, so no Babel, no esbuild, no bundler. Fewer moving parts at the cost of portability.
Take whatever's useful. Feel free to share with anyone who'd find it interesting, that's part of why I'm posting here.
Thanks again.
Anthony
Beta Was this translation helpful? Give feedback.
All reactions