Giter VIP home page Giter VIP logo

copperspice's Introduction

CopperSpice

Introduction

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:

  • CsCore
  • CsGui
  • CsMultimedia
  • CsNetwork
  • CsOpenGL
  • CsPhonon
  • CsScript
  • CsSql
  • CsSvg
  • CsWebKit
  • CsXml
  • CsXmlPatterns

There are also three open source BSD licensed libraries which are used by CopperSpice and available as stand alone libraries for anyone developing a C++ application.

  • CsSignal
  • CsString
  • libGuarded
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 without restriction

Enhanced Functionality

  • CopperSpice makes extensive use of modern C++ features like variadic templates, constexpr, SFINAE, lambdas, atomics, tuple, etc
  • Reimplemented container classes in CsCore using the C++ standard library containers, iterators, and algorithms
  • CopperSpice includes several of the Qt 5 classes
  • Integration of CsSignal
    • Improved thread aware Signal/Slot delivery
    • Increased efficiency while maintaining the full Signal/Slot API
  • Integration of CsString
    • Improved storage of Unicode strings
    • QString8 (UTF-8) and QString16 (UTF-16)

Using the Libraries

  • Any application using CopperSpice can be built with CMake, GNU Autotools, or any other build system
  • CopperSpice can be linked directly into any standard C++ application

System Requirements

To use the CopperSpice libraries you will need a C++14 compiler and a C++14 standard library.

Uses CMake or Autotools for building binary files. Your project can be built with either CMake or Autotools. Refer to our CopperSpice Overview documentation, DoxyPress application, or our KitchenSink demo for sample build files.

Building

The CopperSpice libraries can be built using CMake or GNU Autotools.

Documentation

API

Full class documentation for CopperSpice is available on the CopperSpice website or downloaded from our forum.

www.copperspice.com/docs/cs_api/index.html

Overview and Building

The CopperSpice Overview documentation includes information on how to build the CopperSpice libraries, setting up a project which uses CopperSpice, how to migrate from Qt to CopperSpice, and other general information.

www.copperspice.com/docs/cs_overview/index.html

Presentations

Our YouTube channel videos are about modern C++, build systems, CopperSpice, DoxyPress, and other topics related to our open source work.

https://www.youtube.com/copperspice

Links to technical presentations recorded at CppNow and CppCon:

www.copperspice.com/presentations.html

Authors / Contributors

  • Ansel Sermersheim
  • Barbara Geller
  • Robin Mills
  • Ivailo Monev
  • Adam Mensel
  • Daniel Pfeifer
  • Zbigniew Skowron
  • Matan Nassaw
  • Mortaro Marcello

License

This library is released under the LGPL V2.1 license. For more information refer to the LICENSE files provided with this project.

References

copperspice's People

Contributors

bgeller avatar agserm avatar fluxer avatar ahmedcharles avatar dangelog avatar janwilmans avatar zbyl avatar carewolf avatar jakepetroules avatar mortaromarcello avatar dfaure-kdab avatar jait avatar orgads avatar derdakon avatar rjvb avatar phartmann avatar laknoll avatar ashkulz avatar lasconic avatar luyikei avatar thiagomacieira avatar ec1oud avatar richmoore avatar naufraghi avatar wilhelmtell avatar martinpley avatar guruz avatar liangqi avatar alpqr avatar konstantinritt avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.