DEV Community

Cover image for I am creating a new ✨JavaScript✨ Framework
Armaan Gupta
Armaan Gupta

Posted on

I am creating a new ✨JavaScript✨ Framework

Okay so here's the plan. I will try to create a new javascript backend framework (most probably not because I'm just trying to rewrite pre-existing backend frameworks). My plan for now is to Understand how all of this works. So My first step is to re-create what others have already made, And then I'll move on to making and architecture of the "new" framework.

Introducing Ramen 🍜

Ramen Logo which I got from the internet hehe

yet another open source backend rest API framework! For now all this is, is a cheap copy of Express

You can find the repository for ramen here Currently as of when I'm writing this post, Ramen has the functionality to

  • Detect query parameters
  • Route parameters
  • Get all the headers
  • Send / write a response object

and it follows the route-by-route kind of routing, Where if a user goes to let's say 'http://ip:port/something/id' it will try to match this with different kind of functions provided to the server. And whichever function comes first (i.e. whichever function was appended first) will be used to process that request. It is also capable of finding query parameters, for example if you go to the URL 'http://ip:addr?foo=bar' you can access the value of foo by the Request object provided to you by Ramen simply by doing
req.queryParams I'll try to log all the developments I make in Ramen here only. And somehow this will keep me motivated to keep this project alive all the time :)

Cat with super powers

Latest comments (24)

Collapse
 
divya1s2u3p4e5r6g7o profile image
Divya1s2u3p4e5r6g7o

All the best

Collapse
 
nbui profile image
Nicolas BUI

Keep going ! Good luck !

Collapse
 
lotfijb profile image
Lotfi Jebali

This is inspiring, keep it up

Collapse
 
husseinkizz profile image
Hussein Kizz

cool but frameworks being born everyday sucks on dev ends, which we all guilt of and yet also victims, anyway, it's very courageous to take on such a big task whole heartedly, I hope you will make it, am struggling to document my CSS framework, anyone interested in building a CSS framework?

Collapse
 
mayormankind profile image
Makinde Mayowa

That's a great one bro!! Ramen on the move. The name is ... 😂

Collapse
 
siddharthshyniben profile image
Siddharth

This is quite cool!

Building a framework is not an easy feat - I've tried myself. I'm glad you found enough motivation to start on such a big project! Looking forward to seeing your work!

Collapse
 
cobialor profile image
Cobialor

I appreciate the fact that you have very good understanding of how computers and browsers interact.

Collapse
 
ndaidong profile image
Dong Nguyen • Edited

Good job! Playing with some stuff like this helps to understand many things behind the scene. I confirm that because I created restfun for the same idea.

To parse query parameters from URL, you can use URLSearchParams or node:querystring. I used URLSearchParams first, then realized that querystring is much faster.

Anyway, there utils give you req.query in express without manually parsing url string. You may need them to parse form data too.

Form can be submitted with 'application/x-www-form-urlencoded' or 'application/json' type. If that's 'application/json' you can use JSON.parse as you do. But when that's 'application/x-www-form-urlencoded', you must handle submitted data as url query string.

For req.params, you can use URLPattern polyfill because it has not been implemented in Node.js yet. It can help to handle router and find the matched ones.

I've used this polyfill at first and it worked as well, but the performance is not good (just similar to express). So I replaced it with find-my-way to get better performance (x7 faster than express). You can also refer regexparam and @funjs/route-parser.

There are several algorithms for router matching we can investigate when possible. But among the nodejs frameworks, the uWebSockets.js based ones are still the fastest.

Collapse
 
zuxcode profile image
Alfred Nwanokwai

That's a good one bro.

Collapse
 
bsaqqa profile image
Baraa Al Saqqa

Nice 🌺.
Go Ahead Bro 💪

Some comments may only be visible to logged-in visitors. Sign in to view all comments.