microui
µWebSockets
Our great sponsors
microui | µWebSockets | |
---|---|---|
13 | 41 | |
3,105 | 16,718 | |
- | 1.0% | |
0.0 | 8.6 | |
4 months ago | about 1 month ago | |
C | C++ | |
MIT License | Apache License 2.0 |
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.
microui
-
Immediate Mode GUI Programming
There is also microui, which I like[0].
Which I forked to work with SDL2[1], no guarantees. It's fun to hack on.
[0]https://github.com/rxi/microui
[1]https://github.com/kennethrapp/microui
- MicroUI: Tiny immediate-mode UI library
-
What should I use to make GUI with SDL
Otherwise, https://github.com/rxi/microui is small enough that you can hack around. Look at the issue though, there's a bit of unaligned access there.
-
ImGui or text rendering libraries
For GUI, there are lots, most well-known of course being Dear Imgui, for which people have made auto-generated C bindings. Another mature but a lot simpler option is Nuklear, as others have mentioned. Even more minimalistic (it's just 1KLOC) is microui. There are a lot more, just google "imgui library c".
- A lightweight, simple, fast, feature-filled, text editor written in C, and Lua
-
Nuklear – A single-header ANSI C immediate mode cross-platform GUI library
The price for the 'lightest' UI toolkit probably goes to microui:
https://github.com/rxi/microui
Just around 1100 lines of C code.
You need to bring your own renderer, but that's the same for Nuklear or Dear ImGui.
I wrote a WASM wrapper for the microui demo too:
https://floooh.github.io/sokol-html5/sgl-microui-sapp.html
-
I made a shortlist of good libraries for my GUI C project and I want your thoughts and comments.
Good C library list: https://en.cppreference.com/w/c/links/libs https://github.com/Immediate-Mode-UI/Nuklear + C89, no dependencies, public license. 5/5 https://www.tecgraf.puc-rio.br/iup/ + good tutorial and wiki guides 5/5 https://libsdl.org/ + infinite possibilities - whole library for making games, forums, wiki - complicated, not many C tutorials, need to manage game states... 4/5 https://github.com/lvgl/lvgl + good docs - for embedded systems 4/5 https://github.com/ocornut/imgui + Popular, inspired Nuklear - for C++ 3/5 https://docs.enlightenment.org/api/imlib2/html/ + very efficient, used in Conky - uses X so only for Linux, just for displaying images and text and stuff 2/5 https://github.com/rxi/microui + simple, small - you need to handle your own drawing 2/5 GTK+ - no
-
I haven't been using Linux that much yet, but because of my experience with Xfce, and because others don't seem to enjoy desktop environments on Linux too much, I want to create my own.
Really? Here's a minimal UI with I believe less LOC than Suckless DWM. It's not a full DE, but I imagine you could probably turn it into one without adding that much more code.
- Best way to write a cross-platform graphical program in C while using only bare minimum third-party libraries?
- resources for making a gui library
µ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.
What are some alternatives?
imgui - Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
Boost.Beast - HTTP and WebSocket built on Boost.Asio in C++11
sokol - minimal cross-platform standalone C headers
libwebsockets - canonical libwebsockets.org networking library
nanovg - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
WebSocket++ - C++ websocket client/server library
pixeltoaster - PixelToaster is a framebuffer library for C++
drogon - Drogon: A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows [Moved to: https://github.com/drogonframework/drogon]
minifb - MiniFB is a small cross platform library to create a frame buffer that you can draw pixels in
Mongoose - Embedded Web Server
nuklear
rpc-websockets - JSON-RPC 2.0 implementation over WebSockets for Node.js and JavaScript/TypeScript