Web-frameworks: Add Turbo (Node)

Created on 6 Jun 2018  路  9Comments  路  Source: the-benchmarker/web-frameworks

Most helpful comment

As for now, there is not categorization, except th茅 language we write un.

For example, japronto is catgeorized as python but it'ws pretty much C instead.

I think, a solution, after will be tout add some purity classification

All 9 comments

Turbo can't be really added to this comparison, well, at least not as a Nodejs contender, since it uses turbo-net which is basically a complete replacement to Node's native http module, which most other frameworks use. Perhaps add turbo-net to the C category.

As for now, there is not categorization, except th茅 language we write un.

For example, japronto is catgeorized as python but it'ws pretty much C instead.

I think, a solution, after will be tout add some purity classification

Turbo is not a framework. It is a replacement for the native http server.

Put differently, you can run every existing Node framework with an attachment to Turbo. You can also do the same thing with uws, which would win by 2x.

Both turbo & uws are Node.js bindings / _shims_ to a C http server. Japronto is different because it includes framework aspects with it; eg, routing and response helpers.

@lukeed Thanks for clarification.

The question is : Is there one (and only one) library that

  • use turbo-http
  • let developers write javascript (server-side)
  • have a routing feature
  • have parsing path parameters feature

As far as I understand, the IS NOT (turbo is generalist)

So we can close this case (project is not enough mature for that)

PS : I hope something like this will be added to https://github.com/ry/deno

Not sure if I understand your question correctly. If I do, then yes, there are many:

Polka can do it. I have examples in the repo with uws -- there's a branch with turbo but it's not official example because Turbo is super buggy.

You can replace http with Express (& Fastify, I believe). It's very common. I'm not certain but I'm willing to be Rayo supports custom server too.

For numbers, on my machine, Polka + native http runs at 42k req/s on Node 8.x

Replacing native http with turbo in the same Polka app runs at 68k req/s on Node 8.x

Replacing native http with uws in the same Polka app runs at 92k req/s on Node 8.x

This doesn't mean Polka is faster -- only the underlying server / "engine" was upgraded.

@lukeed Ah yeah, seems to be fast ^^ very interesting for me (not a node developer)

So, this change a little bit the question, what server implementation to use ?

As we target developers, at least implementations of each frameworks are made by developers, I think we SHOULD keep the default http implementation

Use native http -- that's the default & is what ships with Node.js. 99.9999% of the population is using this & will always use this.

Switching to turbo or uws is a very careful decision that needs to be made. They are (both) purposefully incomplete, so cannot be done haphazardly or without careful inspection. I can't speak to all their differences here, but the synopsis is that Turbo/uWS are only to be used for tiny, specific use cases that can be thoroughly tested.

They cannot, in present states, be used to power entire applications.

@lukeed -Yes, Rayo supports a custom HTTP server as well.

... on my machine, Polka + native http runs at 42k req/s on Node 8.x

You have a fast machine, my 2013 laptop gets 20k at most. 馃檲

Was this page helpful?
0 / 5 - 0 ratings

Related issues

t-wojciech picture t-wojciech  路  5Comments

waghanza picture waghanza  路  6Comments

danielcasler picture danielcasler  路  3Comments

proyb6 picture proyb6  路  11Comments

bhansconnect picture bhansconnect  路  9Comments