A persistent daemon keeps V8, compilers, and caches warm in memory. Tests run 2.6x faster than Bun. Drop into any Node.js project today.
curl -fsSL https://howth.run/install.sh | sh10,000 React components — Linux x64 (c3-highcpu-8)
Fork of rolldown/benchmarks — View source & methodology →Apple M3 Pro, 500 test files
howth's persistent daemon keeps compilers, caches, and V8 warm in memory.
Drop howth test into any Node.js project today. No migration required.
The fastest JavaScript test runner. Jest-compatible API.
Run TypeScript directly. Daemon keeps everything warm.
Drop-in npm replacement with global cache.
Bundle TypeScript, JSX, CSS for browsers and servers.
Development server with instant hot module replacement.
In a typical dev session, you run tests hundreds of times. howth gets faster with each run.
Daemon starts, V8 initializes, compilers warm up. Still fast.
V8 is running. Caches are hot. Just execute.
Only re-transpile what changed.
Over a day with 500 test runs, howth saves ~2 minutes vs Bun and ~30 minutes vs Jest.
import { createServer } from 'node:http';
const server = createServer(async (req, res) => {
if (req.url === '/') {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Welcome to howth!');
}
if (req.url === '/api/users') {
const users = [{ id: 1, name: 'Alice' }];
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify(users));
}
});
server.listen(3000);
console.log('Listening on http://localhost:3000');http.createServer() HTTP & HTTPSWebSocket Client & serverfetch() Web standardHowth.Cookie Zero-overheadfs.readFile() Fast readingfs.writeFile() Efficient writesHowth.Glob Pattern matchingpath.* Path utilitieshowth test Jest-compatiblesnapshots Built-inexpect() Jest assertions--coverage Code coveragehowth bundle Tree-shaking--compile Single executables--hot Hot reloadhowth dev HMR serverTypeScript & JSX Zero configimport "*.yaml" YAML & TOMLimport "*.css" CSS imports.env Environment varsHowth.hash() Fast hashingHowth.semver Version compareHowth.markdown() GFM parsingcrypto.* Crypto APIsA unique architecture that no other runtime has
| Architecture | howth | Node | Bun |
|---|---|---|---|
| Persistent daemonBackground process keeps runtime warm | Yes | No | No |
| In-memory module cacheTranspiled modules persist across runs | Yes | No | No |
| IPC-based executionCommands via Unix socket, no process spawn | Yes | No | No |
| Performance | howth | Node | Bun |
| Test runner (10K tests)Jest-compatible execution | 139ms | 4.08s | 368ms |
| Bundler (10K modules)React JSX, minified + sourcemaps | 290ms | N/A | 541ms |
| Warm transpileTypeScript after daemon warm | 0.1ms | N/A | ~5ms |
| HTTP throughputRequests/sec (50 connections) | 172K | 111K | 211K |
| Compatibility | howth | Node | Bun |
| Node.js API coveragePercentage implemented | ~85% | 100% | ~95% |
| Drop-in for Node.js projectsNo migration needed | Yes | Yes | Yes |
# Install howth
curl -fsSL https://howth.run/install.sh | sh
# Run your tests with howth (works with Jest syntax)
howth test
# That's it. No config changes needed.