Roam — Fetch-Native Router for Bun, Deno, Workers & Node

Preview and demo
Status: unchecked. Availability checks are not a security guarantee.
Description
Roam is a tiny, fetch-native HTTP router. Register routes and router.fetch(request) returns a Response — exactly the shape Bun, Deno and Cloudflare Workers expect. A small adapter runs the same router on Node. Zero runtime dependencies, TypeScript-first.
Highlights
- One router, four runtimes:
Bun.serve,Deno.serve, Workersexport default, Node adapter. - Web-standard
Request/Response— no lock-in, no polyfills. :param&*wildcard patterns compiled to regex.- Typed context (params, query, state) with
json/text/html/redirecthelpers. - Onion middleware,
group()&mount(), automatic 404/405 (with Allow). - Zero dependencies; ESM +
.d.ts; trivially testable.
Features
Requirements
- TypeScript 5+
- Bun, Deno, a Workers project, or Node 18+
- Any ESM-capable toolchain
Changelog
Frequently Asked Questions
Which runtimes does Roam support out of the box?
Roam works natively on Bun, Deno, and Cloudflare Workers by calling router.fetch(request), since all three runtimes expose a fetch-style handler that expects a standard Request and returns a Response. A dedicated Node adapter (roam/node) lets you run the exact same router on Node's node:http server without any code changes to your routes.
Does Roam require any external dependencies or polyfills?
No — Roam has zero runtime dependencies and relies entirely on the Web-standard Request and Response APIs that Bun, Deno, and Cloudflare Workers provide natively. No polyfills are needed on those runtimes; the Node adapter bridges the gap for Node without pulling in third-party packages.
What routing patterns does Roam support?
Roam supports named parameters (e.g. :param) and wildcard segments (*), both of which are compiled to regular expressions at registration time for fast matching. There is no support for arbitrary custom regex patterns beyond these two constructs, keeping the API simple and predictable.
What is included in the package — TypeScript types, examples, tests?
The package ships as ESM with bundled TypeScript declaration files (.d.ts), so you get full type safety and autocompletion without a separate @types install. It also includes a node:test suite and per-runtime example files covering Bun, Deno, Cloudflare Workers, and Node so you can get started immediately.
How does middleware work, and can I scope routes into groups or sub-apps?
Roam uses an onion (layered) middleware model where each middleware can run logic before and after the next handler in the chain. You can organise routes with group() for shared prefixes or middleware, and mount() to attach an entirely separate router instance as a sub-application.
How are 404 Not Found and 405 Method Not Allowed responses handled?
Roam automatically returns a 404 response when no route matches the request path, and a 405 response when the path matches but the HTTP method does not. The 405 response includes a correctly populated Allow header listing the methods that are registered for that path.
Technical requirements
- See the detailed requirements in the product description below.
What is included
- Component library package with full downloadable files
- Product listing and product page guidance
- Product files ready for self-hosting or integration
- 10 listed features
- Changelog included on the product page
Who is this product for
- Buyers who need a component library rather than a custom build from scratch
- Teams shopping within Deno & Bun
- Use cases aligned with bun, deno, cloudflare workers, router
License and usage
- Regular license for one end product where end users are not charged for access to the item itself
- Extended license for one end product where end users can be charged
- Verify the exact usage rights on the selected license before deployment or client handoff
- Keep the purchase record and license certificate for future verification
Updates and support
- 6 months of seller support included
- Review the seller support scope before purchasing.
- Recent changes are visible in the product changelog
- Use the changelog to confirm ongoing maintenance before rollout
Technical details
- Current version
- 1.0.0
- Last updated
- Jul 11, 2026
- License options
- Regular, Extended
- Support period
- 6 months of seller support included
Marketplace review
Content review processNo completed marketplace review record is available for this product.
This is not a full penetration test or a guarantee that the product is vulnerability-free.
License comparison
A license is tied to one end product, not strictly to one domain. Development, staging, and the final production domain may belong to the same licensed deployment.
| Use | Regular License | Extended License |
|---|---|---|
| Source code modification | ||
| Own project use | ||
| One client project | ||
| One production deployment | ||
| Development and staging | ||
| Paid SaaS or paid user access | ||
| Multiple unrelated client projects | ||
| Redistribute source code | ||
| Resell source code |
License FAQ
Can I modify the source code?
Yes, under both licenses.
Can I use the script for a client?
Yes, for one client end product.
Can I install it on a staging domain?
Yes. Development and staging may belong to the licensed deployment.
Do I need another license for another client?
Yes, each unrelated client end product needs its own license.
Can I use it for a paid SaaS?
Yes, with an Extended License.
Can I resell the source code?
No. Standalone redistribution or resale is prohibited.
Is a license limited strictly to one domain?
No. It is tied to one end product, which may use development, staging, and production domains.
For one end product — free to end users
Item Details
- Last Update
- July 11, 2026
- Published
- June 9, 2026
- Version
- 1.0.0
- Category
- Deno & Bun
- Sales
- 0
- Reviews
- No reviews
Buying guides
Share This Item
License Info
Regular License — Use in one end product which end users are not charged for.
Extended License — Use in one end product which end users can be charged for.
Verify a license key →