Description
CopperSpice is of a set of C++ libraries used to develop cross-platform software applications. This is an open source project
released under the LGPL V2.1 license. CopperSpice was derived from the Qt framework. Our motivation for developing CopperSpice was to
change the core design and leverage modern C++ functionality.
The libraies provided in CopperSpice include:
copperspice alternatives and similar libraries
Based on the "GUI" category.
Alternatively, view copperspice alternatives based on common mentions on social networks and blogs.
-
imgui
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies -
webview
Tiny cross-platform webview library for C/C++. Uses WebKit (GTK/Cocoa) and Edge WebView2 (Windows). -
libui
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports. -
Stacer
Linux System Optimizer and Monitoring - https://oguzhaninan.github.io/Stacer-Web -
nuklear
A single-header ANSI C immediate mode cross-platform GUI library -
FTXUI
Features: - Functional style. Inspired by [1] and React - Simple and elegant syntax (in my opinion). - Support for UTF8 and fullwidth chars (→ 测试). - No dependencies. - Cross platform. Linux/mac (main target), Windows (experimental thanks to contributors), - WebAssembly. - Keyboard & mouse navigation. Operating systems: - linux emscripten - linux gcc - linux clang - windows msvc - mac clang -
SixtyFPS
Slint is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++ or JavaScript. [Moved to: https://github.com/slint-ui/slint] -
Sciter
Sciter: the Embeddable HTML/CSS/JS engine for modern UI development -
GacUI
GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features. -
Turbo Vision
A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support. -
FLTK
FLTK - Fast Light Tool Kit - https://github.com/fltk/fltk - cross platform GUI development -
SOUI
SOUI是目前为数不多的轻量级可快速开发window桌面程序开源DirectUI库.其前身为Duiengine,更早期则是源自于金山卫士开源版本UI库Bkwin.经过多年持续更新方得此库 -
PDCurses
A curses library for environments that don't fit the termcap/terminfo model. -
cuda-api-wrappers
Thin C++-flavored header-only wrappers for core CUDA APIs: Runtime, Driver, NVRTC, NVTX. -
xtd
Free open-source modern C++17 / C++20 framework to create console, GUI (forms like WinForms) and unit test applications on Microsoft Windows, Apple macOS and Linux. -
CTPG
Compile Time Parser Generator is a C++ single header library which takes a language description as a C++ code and turns it into a LR1 table parser with a deterministic finite automaton lexical analyzer, all in compile time. -
eventbus
A simple, header only event bus library written in modern C++17. -
ncurses
snapshots of ncurses - see http://invisible-island.net/ncurses/ncurses.faq.html (no pull requests are accepted) -
Clip Library
Cross-platform C++ library to copy/paste clipboard content -
QCustomPlot
Qt plotting widget without further dependencies. [GPLv3] -
fox-toolkit
Unofficial Zenotech specific mirror of fox-toolkit; please refer to upstream site for latest version -
genetic
A performant and flexible genetic algorithm implemented in C++20/23. -
NotificationManager
A thread-safe, easy-to-use, utility for sending and receiving notifications. It allows you to decouple different modules of your application. -
static_string
Experimental compile-time string manipulation C++17 library -
QwtPlot3D
A feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets. [zlib]
Collect and Analyze Billions of Data Points in Real Time
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of copperspice or a related project?
README
CopperSpice
Introduction
CopperSpice is a set of individual libraries which can be used to develop cross platform software applications in C++. It is a totally open source project released under the LGPL V2.1 license and was initially derived from the Qt framework. Over the last several years CopperSpice has completely diverged, with a goal of providing a first class GUI library to unite the C++ community.
Our motivation for developing CopperSpice was to change the fundamental design and turn the existing framework into a set of libraries for C++ developers. We are accomplishing this by leveraging modern C++ functionality, new technology, and modern tooling. CopperSpice currently requires C++17 or newer.
The libraries available in CopperSpice include:
- CsCore
- CsGui
- CsMultimedia
- CsNetwork
- CsOpenGL
- CsScript
- CsSql
- CsSvg
- CsWebKit
- CsXml
- CsXmlPatterns
There are also several open source BSD licensed libraries which are used by CopperSpice and available as stand alone libraries for anyone developing C++ applications.
- CsCrypto
- CsLibGuarded
- CsPrint
- CsSignal
- CsString
System Requirements
To use the CopperSpice libraries a C++17 compiler and a C++17 standard library are required.
CopperSpice CMake build files are provided with the source distribution. We recommend your projects should also use CMake and Ninja for the build system.
For additional information about building from source, refer to our CopperSpice Overview Documentation or the KitchenSink demo application for sample CMake project files.
Building
The CopperSpice libraries are built using the CMake build system.
Documentation
Overview
The CopperSpice Overview documentation includes information on building CopperSpice, downloading prebuilt binary files, package requirements, setting up an application which links with CopperSpice, migrating to CopperSpice, and general configuration information.
https://www.copperspice.com/docs/cs_overview/index.html
API
The API contains full class documentation and multiple tutorials for CopperSpice and is available directly on our website and from our download page.
URL | Description |
---|---|
www.copperspice.com/docs/cs_api/index.html | CopperSpice 1.7 |
https://download.copperspice.com/copperspice/documentation | Overview and API (tar and zip formats) |
Major Enhancements
Reflection
- No Meta-Object Compiler is required for generating meta data, all references were removed
- The functionality provided by moc was replaced with compile time templates
- CopperSpice automatically generates meta data for processing Signals/ Slots and Introspection
- A template class can now inherit from QObject with no restrictions on types
- Complex data types such as QMap<QString, int> can be used for signal or slot arguments
Enhanced Functionality
- CopperSpice makes extensive use of modern C++ features
- constexpr, lambda expressions, templates, variadic templates, template variables
- move semantics, structured bindings, tuple, decltype, SFINAE, and type traits
- Redesigned all container classes to use the C++ standard library containers, iterators, and algorithms
- Refactored all Mutex and Lock classes
- CopperSpice includes a majority of the Qt 5 classes
- Platform independent plugin system based on standard C++
High DPI Rendering Support
Integration of CsLibGuarded
- Used to manage shared data
Integration of CsSignal
- Improved thread aware Signal/Slot delivery
- Increased efficiency while maintaining the full Signal/Slot API
- Deadlocks in Signal/Slot processing have been eliminated
Integration of CsString
- Improved storage to properly represent Unicode strings
- QString8 (UTF-8) and QString16 (UTF-16) classes
- Added QStringView, QStringParser, and QRegularExpression
Using the Libraries
- Any C++ application using CopperSpice can be built with CMake or any build system which imports CMake files
- CopperSpice can be linked directly into any standard C++ application
Presentations
Our YouTube channel contains videos about C++, graphics, build systems, CopperSpice, DoxyPress, and other topics related to software development.
https://www.youtube.com/copperspice
Links to technical presentations recorded at CppCon, CppNow, embBO++, MeetingC++, and code::dive, can be found on our presentation page.
www.copperspice.com/presentations.html
Authors / Key Contributors
- Ansel Sermersheim
- Barbara Geller
- Jan Wilmans
- Tim van Deurzen
- Paul Bendixen
- Peter Bindels
- Mortaro Marcello
- Adam Mensel
- Robin Mills
- Ivailo Monev
- Adam Mensel
- Matan Nassaw
- Jeff Cohen
- Daniel Pfeifer
- Zbigniew Skowron
License
This library is released under the LGPL V2.1 license. For more information refer to the LICENSE file provided with this project.
References
- Website: https://www.copperspice.com
- Twitter: https://twitter.com/copperspice_cpp
Email: [email protected]
Github: https://github.com/copperspice
Journal: https://journal.copperspice.com
*Note that all licence references and agreements mentioned in the copperspice README section above
are relevant to that project's source code only.