cnjinhao/nana has 2,481 GitHub stars and 347 forks. GitHot measured 0 stars in 24 hours and -1 in 7 days. Last checked 2026-11-09 18:58 UTC. Last push 2026-11-02.
a modern C++ GUI library
Measured star growth
- in 24h
- 0
- in 7 days
- -1
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalNana C++ Library
nana 1.8 beta.
masternow contains nana 1.8, which requires C++17. It is a pre-release while the tests, the documentation and this README are being updated. nana 1.7, the last version before C++17, continues in the branchnana-1.7.
Nana is a C++ standard-like GUI library designed to allow developers to easily create cross-platform GUI applications with modern C++ style. Currently it is regularly tested on Linux(X11) and Windows, and experimentally on macOS and FreeBSD. The nana repository contains the entire source of the library. You can browse the source code and submit your pull request for contributing.
License
Nana is licensed under the Boost Software License
Members
Documentation
The documentation is being rebuilt. The websites nanapro.org and nana.acemind.cn are now offline. Meanwhile, please use:
- INSTALL.md, to build nana and use it in your project;
- the comments in the source code, mainly in the headers (
include/nana);- the reference generated with Doxygen, for nana 1.7.2 (2019): mostly still valid, but partly outdated;
- the wiki;
- the examples of nana-demo.
Examples
Here is an example to give you an idea of how to use the Nana C++ Library.
Create a window
The form class provides methods to manipulating a window.
#include <nana/gui.hpp>
int main()
{
nana::form fm;
fm.show();
nana::exec();
}
Tests
The examples of nana-demo are also the tests: with
-DNANA_CMAKE_AUTOMATIC_GUI_TESTING=ON each one is registered in CTest, and the CI builds and runs them on every push
and pull request. nana-demo also has interaction tests (InteractionTests/), which drive the widgets with the real mouse
and keyboard (X11 and Windows).
Before a release, the tests are also run with sanitizers (AddressSanitizer, UndefinedBehaviorSanitizer, ThreadSanitizer)
on Linux and Windows, and the code is checked with static analyzers (clang-tidy, cppcheck, GCC -fanalyzer, MSVC
/analyze).
Sending a Pull Request
Contributions are welcome! Please send your pull request to:
- master, for nana 1.8;
- nana-1.7, only for fixes of nana 1.7 (the last version before C++17).
Please keep each pull request small, about one fix or feature. Thank you!
Branches
- master: the current version, nana 1.8. Releases are tags on this branch.
- nana-1.7: maintenance of nana 1.7.
- dev_dpi_system: experimental support of DPI scaling (work in progress, kept up to date with master).
- Other branches are for work in progress on new features.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,398 starspublic-apis/public-apis
A collective list of free APIs
497,679 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
447,495 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,261 stars