Help needed: I am looking for contributors to help me with this project. If you are interested, please let me know.
Hasty server is a simple web framework to build webserver in a simple way. It is inspired by Express.js. Bascially, It is my implementation of HTTP using raw TCP Socket in Javascript.
This project has been upgraded to be Production Ready. It supports:
- Robust Body Parsing: Handles fragmented packets and large payloads.
- HTTP Keep-Alive: Persistent connections for high performance.
- CORS Support: Full CORS handling including preflight and credentials.
- HTTP 1.1 Compliance: Fully compliant with GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS.
- Battle Tested: Verified against edge cases, slowloris attacks, and protocol abuse.
It is a great tool to learn how HTTP works under the hood while being robust enough for real-world API usage.
npm install hasty-serverHasty Server supports multiple module systems for maximum compatibility:
const Hasty = require('hasty-server');
const server = new Hasty();import Hasty from 'hasty-server';
const server = new Hasty();import Hasty, { Request, Response } from 'hasty-server';
const server = new Hasty();
server.get('/', (req: Request, res: Response) => {
res.json({ message: 'Hello from TypeScript!' });
});The framework automatically detects your module system and provides the appropriate format:
- CommonJS projects: Uses
.jsfiles - ESM projects: Uses
.mjsfiles - TypeScript projects: Uses
.d.tstype definitions
Common JS
const Hasty = require('hasty-server');
const server = new Hasty();
server.get('/', (req, res) => {
res.send('Hello World');
});
server.listen(8080, () => {
console.log('Server is running on port 8080');
});ES6
import Hasty from 'hasty-server';
const server = new Hasty();
server.get('/', (req, res) => {
res.send('Hello World');
});
server.listen(8080, () => {
console.log('Server is running on port 8080');
});TypeScript
import Hasty, { Request, Response } from 'hasty-server';
const server = new Hasty();
server.get('/', (req: Request, res: Response) => {
res.json({ message: 'Hello from TypeScript!' });
});
server.post('/api/users', (req: Request, res: Response) => {
const userData = req.body;
res.status(201).json({ id: 1, ...userData });
});
server.listen(8080, () => {
console.log('TypeScript server running on port 8080');
});Some of the features in response object are:
-
send: Send a response to the client.- Usage:
res.send('Hello World')
- Usage:
-
json: Send a JSON response to the client.- Usage:
res.json({message: 'Hello World'})
- Usage:
-
status: Set the status code of the response.- Usage:
res.status(200) - Default status code is 200.
- Usage:
If you would like to contribute to Hasty Server, you're welcome to:
- Fork the repository.
- Create a branch for your feature or bugfix.
- Submit a pull request.
- Please make sure to read the contribution guidelines for more details.
Note: Do not use third-party code or dependencies. You can take help from language models, but avoid directly copying any of their code.
- v0.9.6
- Added comprehensive module support (CommonJS, ESM, TypeScript)
- Added dual package support with automatic module detection
For more information, see . CHANGELOG
This project is licensed under LGPL-2.1 - see the LICENSE file for details.
All rights reserved to the author.