This repository implements the TompHTTP bare server. See the specification here.
We provide a command-line interface for creating a server.
For more features, specify the --help
option when running the CLI.
- Install Bare Server Node globally
npm install --global @tomphttp/bare-server-node
- Start the server
npx bare-server-node
Optionally start the server localhost:8080
npx bare-server-node --port 8080 --host localhost
import createBareServer from '@tomphttp/bare-server-node';
import { createServer as createHttpServer } from 'http';
const httpServer = createHttpServer();
const bareServer = createBareServer('/', {
logErrors: false,
localAddress: undefined,
maintainer: {
email: '[email protected]',
website: 'https://github.com/tomphttp/',
},
});
httpServer.on('request', (req, res) => {
if (bareServer.shouldRoute(req)) {
bareServer.routeRequest(req, res);
} else {
res.writeHead(400);
res.send('Not found.');
}
});
httpServer.on('upgrade', (req, socket, head) => {
if (bareServer.shouldRoute(req)) {
bareServer.routeUpgrade(req, socket, head);
} else {
socket.end();
}
});
httpServer.on('listening', () => {
console.log('HTTP server listening');
});
httpServer.listen({
port: 8080,
});