Our great sponsors
med | microui | |
---|---|---|
6 | 13 | |
87 | 3,105 | |
- | - | |
3.4 | 0.0 | |
6 months ago | 4 months ago | |
D | C | |
GNU General Public License v3.0 or later | 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.
med
- Med: Micro Emacs in D
-
A lightweight, simple, fast, feature-filled, text editor written in C, and Lua
Here's another one with a very small footprint:
https://github.com/DigitalMars/med
It's the one I use every day. The executable on Windows is a little over a meg. It also works on Linux and Mac.
- A case against syntax highlighting
-
I Still Use Plain Text for Everything.
I fixed my editor so that it recognizes URLs, and underlines them. Clicking on one brings up a browser on that site. I should have done that 20 years ago.
No special syntax is required. It just works. I've since been adding URLs in comments all over my code, for references. It's marvelous.
It could be extended to recognize filename.jpg and filename.mp3 to display or play those files, too. Again with no special syntax whatsoever. It just works.
https://github.com/DigitalMars/med
-
The Lost Apps of the 80s
I still use microEmacs, which floated around the intertoobs in the 1980s. Of course, I've modified it substantially over the years, most recently adding color syntax highlighting and Unicode.
D version:
https://github.com/DigitalMars/med
C version:
https://github.com/DigitalMars/me
The "extension language" is it's so easy to just add some code and recompile it, there's no point in adding an extension language.
I like microEmacs a lot because I can use it remotely over a tty interface.
-
Hecto: Build your own text editor in Rust
Doing one yourself is fun. MicroEmacs drifted around NNTP in the 80s, and I snagged a copy and began modifying it to taste. I've been using it ever since. The latest version was ported to D:
https://github.com/DigitalMars/med
It's a very easy editor to understand and extend.
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
What are some alternatives?
Joplin - Joplin - the secure note taking and to-do app with synchronisation capabilities for Windows, macOS, Linux, Android and iOS.
imgui - Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
libui-ng - libui-ng: a portable GUI library for C. "libui for the next generation"
sokol - minimal cross-platform standalone C headers
ledger - Double-entry accounting system with a command-line reporting interface
nanovg - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
lite-xl-plugin-manager - A lite-xl plugin manager.
pixeltoaster - PixelToaster is a framebuffer library for C++
lite-xl-ide - A set of plugins to convert lite-xl into a proper IDE.
minifb - MiniFB is a small cross platform library to create a frame buffer that you can draw pixels in
FluidFramework - Library for building distributed, real-time collaborative web applications
nuklear