Home - ZvontyFlugence/NiGui GitHub Wiki
NiGui is a cross-platform, desktop GUI toolkit written in Nim. NiGui provides an easy way to develop applications in Nim.
NiGui currently supports the following Operating Systems
- Windows (Windows API)
- Linux (GTK+ 3)
- MacOS (GTK+ 3) - *No native support at the moment
-
Full abstraction
NiGui provides full abstraction of the underlying platform. NiGui applications are written once and can be compiled for different platforms. Application developers don't have to care about platform-specific details. -
Simple and elegant
NiGui has a clean and beginner-friendly high-level API. It is much less complex than the Win32 API, GTK+ or Qt. NiGui profits of Nim's features and elegance in contrast to C code, for example Nim's polymorphism capabilities. -
Powerful
NiGui uses the native controls of the underlying platform to give a familiar use and feel for the user. In addtion, NiGui allows to create custom controls for special use cases or a themed UI. NiGui has it's own layout manager for automatic resizing and positioning of controls. -
Minimal dependencies
The NiGui source code has no dependencies except Nim's standard library. Platform bindings are included. Generated binaries (exe files) include NiGui and do not need external libraries.
NiGui compared to Gtk Gtk is a popular cross-platform GUI toolkit written in C. Gtk uses native widgets partly. Unlike to NiGui, under Windows the user has to install Gtk or you ship the DLL files with your application. The Gtk 2 DLL files for Windows takes about 30 MB. Under the desktop Linux distributions, Gtk 2 and 3 are usually preinstalled. NiGui uses Gtk 3 as backend under Linux.
NiGui compared to Qt Qt is a popular cross-platform GUI toolkit written in C++. It uses a preprocessor for the C++ code, therefore it cannot be used with other programming languages like C or Nim.
NiGui compared to wxWidgets wxWidgets is a cross-platform GUI toolkit written in C++. Unlike NiGui, under Windows the user has to install wxWidgets, or you have to ship the DLL files with your application, or you can statically link wxWidgets into your application. The wxWidgets DLL files for Windows takes about 20 MB (about the same overhead applies to static linking). wxWidgets can be used in Nim (https://github.com/Araq/wxnim/).
NiGui compared to IUP IUP is a cross-platform GUI toolkit written in C (http://webserver2.tecgraf.puc-rio.br/iup/). Like NiGui, IUP uses Gtk and Win32 as backends. IUP can be used in Nim (https://github.com/nim-lang/iup). Using a C library in Nim is better than most languages but not perfect. For example the user has to install the library according to the instructions from the wrapper. With a pure Nim project you only need to install the package.
NiGui compared to libui libui is a cross-platform GUI toolkit written in C (https://github.com/andlabs/libui). Like NiGui, libui uses Gtk and Win32 as backends and uses native controls. Like NiGui, libui is in the early development phase (at least no documentation is written). libui can be used in Nim (https://github.com/nim-lang/ui). Using a C library in Nim is better than most languages but not perfect. For example the user has to install the library according to the instructions from the wrapper. With a pure Nim project you only need to install the package.
NiGui compared to nimx nimx is a cross-platform GUI toolkit written in Nim (https://github.com/yglukhov/nimx). It uses OpenGL as backend and also works in a web browser. There are no native controls. Like NiGui, nimx is in the early development phase (at least no documentation is written).
NiGui is FLOSS (free and open-source software). All files in this repository are licensed under the MIT License. As a result you may use any compatible license (essentially any license) for your own programs developed with NiGui. You are explicitly permitted to develop commercial applications using NiGui. Copyright 2017 Simon Krauterx