µWebSockets
hyper-express
Our great sponsors
µWebSockets | hyper-express | |
---|---|---|
41 | 38 | |
16,718 | 1,431 | |
1.0% | - | |
8.6 | 8.8 | |
about 1 month ago | 17 days ago | |
C++ | JavaScript | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
µWebSockets
-
I'm open-sourcing my game engine
They use (uWebSockets)[https://github.com/uNetworking/uWebSockets], which was written in C++, but has an interface to use in NodeJS. It's been really performant for me in my simple tests compared to other popular websocket libs that slow down fairly quickly.
-
8 Best WebSocket Libraries For Node
µWebSockets, pronounced as "microWebSocket”, is a WebSocket library written in C++ and has Node.js bindings. Its design focuses on being efficient and scalable, making it ideal for applications that require high concurrency and low latency.
-
Recommendations for a CPP HTTP server which supports changing max threads at run time.
You can do that with any single threaded library that leaves threading to you. Like for example https://github.com/uNetworking/uWebSockets
-
What's the hot tech stack these days?
Websockets are also pretty valuable for updating the page in real time, there are servers in many languages. I'm a big fan of https://github.com/uNetworking/uWebSockets which is C++ but also has JS bindings to use with Node.js.
-
I have done a full benchmark of a POST REST API on my computer: Node.js vs Fastify vs Express.js vs Deno vs Bun vs GO. Node.js is used WITH and WITHOUT clustering on 6-core I7 processor
Can you include uWebsockets? https://github.com/uNetworking/uWebSockets
-
[Cpp] Quelle bibliothèque de serveur Web C++ faut-il utiliser de nos jours ?
μWebSockets Génial, rapide, peut transformer l’eau en vin. Nécessite C++17.
-
Nuklear – A single-header ANSI C immediate mode cross-platform GUI library
Not exaclty -- it looks like it's pretty overkill for my needs
I'm looking for something more like websocketpp[0], or even just grpc without a requisite proxy. uWebsockets looks really promising, being header only, but in the fine print requires a runtime library. unfortunately, none of that ecosystem seems to use cmake, making integrating it that much more of a pain.
why use cpp for this, I'm sure some HNer will ask. the ray tracer itself is using cuda, that's why. I've also debated
- running it as a grpc server and having some proxy in a more web-accessible language
- creating python bindings and using python to make a websocket/http server for it
neither of those are out of the question, but they're not my first choices, because I'd like to keep the build & execution simple. introducing dependencies, especially other executables, is in conflict with that.
i don't need anything particularly scalable -- a threaded implementation, or one using select() would be fine, if not preferable.
[0] https://docs.websocketpp.org/
[1] https://github.com/uNetworking/uWebSockets
-
WebSocket Server in C
Really cool i also made and CAPI for using WebSocket in C, https://github.com/uNetworking/uWebSockets/tree/master/capi
I will take a deep look on your project thanks for sharing!
-
Socketify.py - Maybe the fastest web framework for Python and PyPy
We discover a really fast, small, and well maintained C++ Library called uNetworking/uWebSockets, but no C API available, so we create and adapt the full C API from uNetworking/uWebSockets and will integrate libuv powered fetch and file IO, this same C API is used by Bun
- In the 1970s, programming was an elite's task. Today programming is done by uneducated "farmers" and as a result, the care for smart algorithms, memory usage, CPU-time usage and the like has dwindled in comparison.
hyper-express
- HyperExpress: High Performance Node.js Webserver
- HyperExpress – High-perf HTTP/ws server (~20x Express.js)
-
I have done a full benchmark of a POST REST API on my computer: Node.js vs Fastify vs Express.js vs Deno vs Bun vs GO. Node.js is used WITH and WITHOUT clustering on 6-core I7 processor
Hey, I believe uWebsockets.js does support clustering. I'm the author of https://github.com/kartikk221/hyper-express which is written on top of uWebsockets.js and is pretty much the fastest webserver in Node land with an Express-like API and all of the common features such as middlewares, Router, async/sync, Websockets, Server Sent Events, File Uploading in a single package that is about same size as Express. The only catch is that you lose about 14% performance from the uWebsockets.js peak because of all the features but this is being improved and a well worth trade off for the familiar developer experience with still almost 2.5x performance of Fastify and other similar frameworks.
- HyperExpress – High Performance Node.js Webserver
- HyperExpress – Simple, performant HTTP/WebSocket server using uWebSockets.js
- Simple, Performant HTTP and WebSocket Server Using Uwebsockets.js
-
MRSK: Deploy Web Apps Anywhere
Yeah I’m personally of the opinion that the performance loss for regular web services is worth it 99% of the time. RAM is cheap, human time is not.
That said I definitely believe your characterization of resource hunger between nginx and traefik.
You are the second person to mention using websockets for requests in as many days… How do you deal with scale out? Sticky cookie routing seems like almost a requirement if you don’t want to deploy a redis-alike.
Also just out of curiosity, do you use hyper-express[0]?
[0]: https://github.com/kartikk221/hyper-express
-
What are some good projects for learning about buffers, event emitters, and streams in NodeJS?
Building your own webserver on top of a lower level networking library in Node.js can be a good way to learn all 3 of those things. I have built a webserver called HyperExpress which is essentially a layer on top of a low level C++ websever called uWebsockets and I had to utilize and progress my knowledge in buffers, emitters and streams to achieve the same API as Express.js and make it usable for Node.js applications: https://github.com/kartikk221/hyper-express Feel free to dig around in the code and make any PRs for improvements!
-
What are the performance overheads of V8 Engine
You can check out source code here if you’d like to do more digging https://github.com/kartikk221/hyper-express
-
Need help in understanding why we need classes in JS(node specifically).
Are classes absolutely needed in JS? No, not really. Are classes really nice and significantly improve the readability/flow of your code in some cases? Sure, an example could be a webserver I wrote: https://github.com/kartikk221/hyper-express
What are some alternatives?
Boost.Beast - HTTP and WebSocket built on Boost.Asio in C++11
nanoexpress - Professional backend framework for Node.js
libwebsockets - canonical libwebsockets.org networking library
iron-session - 🛠 Secure, stateless, and cookie-based session library for JavaScript
WebSocket++ - C++ websocket client/server library
Socket.io - Realtime application framework (Node.JS server)
drogon - Drogon: A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows [Moved to: https://github.com/drogonframework/drogon]
bun - Bun JS app doing basically nothing
Mongoose - Embedded Web Server
Express - Fast, unopinionated, minimalist web framework for node.
rpc-websockets - JSON-RPC 2.0 implementation over WebSockets for Node.js and JavaScript/TypeScript
just - the only javascript runtime to hit no.1 on techempower :fire: