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 is a work in progress and not ready for production. It is just a fun project to learn how HTTP works under the hood.
npm install hasty-server
Hasty 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
.js
files - ESM projects: Uses
.mjs
files - TypeScript projects: Uses
.d.ts
type 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.