9

अनुमार्गक ( Anumargak ) - Fastest web router in node js

Project Type
Existing open source project
Summary

अनुमार्गक ( Anumargak ) - Fastest web router in node js

Description
Why? I was using find-my-way previously. But I realized that if we handle static URL differently than dynamic URL then routing can become faster. How? I use URLs as object key Other unique features: * It can differentiate similar and same URLs '\this\is\:age([0-9]+)' '\this\is\:name([a-zA-Z ])' Common features * Optional trailing slash * Supports regular expression * Supports wildchar * Can fit in any framework * Supports multiple path parameters Next action: ( If developers likes to use it ) * Two more unique features of simplifying use of regex, and URL pre-processing * Some more common features
Tech Stack
nodejs
Current Team Size
1
URL
Comments
  • 3
    @Floydian It is basically helpful for web frameworks like restify, express, koa, sails and other.

    When a request reaches to server it needs to be routed to a particular resource or handler. This is what is does but quickly.

    👍 For last statement. Yanha log description se samjh jaayenge. Father ban ne ke baad I feel the importance of Hindi and Sanskrit. But ab bahut difficult lagti hai. So trying at least where I can.
  • 1
    @Floydian May be this post will not be right for this discussion but..

    I thought in the same way. But my daughter realized me it's need. And it's not about culture but best tool to program this world. So I'm not gonna give up. 😊
  • 1
    I name all my projects in Hindi. And I love people who do so too.
  • 1
    @Cyanide I would love to know more about them..
  • 3
    @Floydian Bhai Sahi kaam Kar rha hai launda. Karne do.

    @amitgupta I like the names dude. Nimn really is a nice name.
  • 2
    @Floydian I see you're worried ki 'ab Hindi bhi jayegi.'

    Imagine in Bengaluru hearing "Kannada gottilla" from (almost) every fuckin northy and neighbouring states!

    Bhai Kannada already chali gayi 😢
  • 1
    Why bother, your savings are so minimal. Especially compared to the ms a request takes.
  • 0
    @dtaposh thanks bhai.
  • 0
    @Condor I said "... in node js"
  • 0
    @D--M check the link to see the comparison chart. In my opinion, it matters in case of quantity.
  • 0
    @Condor one question, (will read wikipedia in sometimes) if my understanding is correct, iptables are detached from an application then how will they route a particular URL to different handler of the same application?
  • 1
    @Floydian @Condor In simple terms,

    Take an example of RESTful webservices. Suppose we have some applications / services hosted on different servers.

    When a request reaches to the server *iptables* will filter the traffic on the basis of source information and route it to the correct application.

    Now when the request reaches to the application, server(application) breaks it into parts (like url, headers etc ). Here we need 𝙨𝙤𝙢𝙚𝙤𝙣𝙚 who can check different parts and call an appropriate function.

    This '𝙨𝙤𝙢𝙚𝙤𝙣𝙚' is anumargak. As it handles a lot of traffic, it needs to be fast. Current version is already faster than existing routers implemented in node js. And I've more ideas to make it more fast.
  • 0
  • 0
    @amitgupta
    I disagree.

    If your getting that much load, scale up your instance/scale out

    If your load isnt high, just chatty requests, then you've made a bad system.
  • 0
    @D--M of course you should scale up. But while developing any project all the non-business libraries must be faster.

    Because, in my knowledge, we create another instance to manage high traffic not to manage slow applications.

    As @Condor mentioned about iptables, they've different purpose. Having multiple instances of your server has different purpose. And running a single instance faster is different.
  • 0
    @Condor do you mean my explanation about iptables?
  • 0
    @Condor completely agree. I should have divided that paragraph in 2.
  • 0
    @amitgupta
    In all my years of professional development I have never said "I'm going to pick (insert your favourite flavour of express/hapi/whatever) because its faster."

    Like. We are talking miniscule amounts of ms. It just doesn't matter.
  • 0
    @D--M of course you should not. There are many factors which should be considered before. If there is a library which provides you nothing but just the speed, you should discard it on the first place.

    But if a library provides you everything what other library provides and more speed, you should go for that.

    However Anumargak provides you more unique features along with the speed, in case if you've checked the link. However I'll update in the collab detail too.

    Update

    Ah it's difficult to type on mobile. Desktop version doesn't let me edit the detail.
  • 1
    One suggestion though, I like this project. However, the name seems a bit weird. To my understanding, names count for a lot. People are more willing to approach familiar names. It's difficult for me (not Indian) to pronounce the name, which is bad.

    But this project seems cool to me. Thanks :)
  • 0
    @voiid 😊 thanks.

    Suggest something short, unique, and meaningful.
  • 1
    Also, can you please create a Slack or Gitchat or (the last, have forgotten) where collaborators can communicate. I have seen some issues I will like to point out in the source code
  • 1
    @amitgupta *Anuma* seems short and sweet to me :).

    From my research, it means freedom, potential, inference, potential.. in India
  • 0
    @voiid you can always raise an issue on github.

    As I'm managing multiple projects, I'm thinking to create one chat and different room/channels for each project. But not sure. I don't think people really need it
  • 0
    @voiid I'll check this. Thanks for the suggestion
  • 0
    @amitgupta I want to be a contributor myself so may be I will submit a pull request for it.

    The feature or documentation if it's already implemented is how to integrate into existing frameworks.. Express/Hapi..
  • 0
    @voiid I'm working on a framework मुनीम (muneem), another Indian name ;). I used Anumargak rhere. It's very simple. I'll create the documentation.

    But it can be used only with the frameworks who welcome external routers.
  • 0
    @voiid I've created an issue for name discussion.

    https://github.com/NaturalIntellige...

    Will create some documentation today.
  • 0
    Unfortunately, express, koa and many other web servers don't let you use external routers.

    So the only way to use it either suggest them or create your own web server.
Add Comment