Wednesday, July 22, 2020

Top Programming Libraries for c++

8 great C++ programming libraries

 C++


C++ programmers look to these libraries to help build desktop applications, mobile applications, machine learning and scientific applications, and more.

C++ is a general-purpose programming language system that is now more than 40 years old and was designed in 1979. Far from losing steam, C++ still ranks close to the top of multiple programming language popularity indexes.

Smoothing the path to C++ usage is a broad support for language among IDE makers, editors, compilers, test frameworks, code quality, and other tools. Software developers also have at their disposal many excellent libraries to assist in the development of C++ applications.

Here are eight that C++ developers are relying on.

 

Library of active templates

From Microsoft, Active Template Library (ATL) is a set of C++ classes for building COM (Common Object Model) objects, supported by COM features such as dual interfaces, standard COM enumerator interfaces, connection points, and ActiveX controls. ATL can be used with Visual Studio IDE to build single-threaded objects, apartment-model objects, free-threaded model objects, or both free-threaded and apartment-model objects.

 

Library of Asio C++

The Asio C++ library is used for network and low-level I / O programming with a consistent asynchronous model. Asio has been used for applications ranging from smartphone apps and games to highly interactive websites and real-time transaction systems, providing basic building blocks for competition, C++ networking, and other types of I / O. Projects that use Asio include the WebSocketPP library and the DDT3 remote debugger for the Lua language. Asio is available for free download open source under the Boost Software License and is supported by Linux , Windows, FreeBSD and MacOS.

 

Poco C++ Libraries

The Poco (Portable Components) C++ Libraries are cross-platform C++ libraries designed to build Internet and network applications that run on systems ranging from desktops and servers to mobile and IoT devices. The libraries can also be used to build microservices with REST APIs for machine learning or data analytics. The Poco libraries are similar in concept to the Java Class Library, the Microsoft. NET Framework, or the Apple Cocoa.

Developers can use Poco libraries to build C++ application servers that talk to SQL databases, Redis, or MongoDB, or build software for IoT devices that talk to cloud backends. The library features include a cache framework, HTML form handling, an FTP file transfer client, and an HTTP server and client. Poco libraries are available free of charge under the Boost Software License and can be downloaded from GitHub.

 

FloatX

FloatX, or Float eXtended, is a low-precision, floating point type library for header-only emulation. Although natively compatible with C++ compilers, FloatX can be used in other languages such as Python or Fortran. Floating point types are extended beyond single and double precision native types. Template types are provided that allow the user to select the number of bits used by the exponent as well as the significant parts of the floating point number. FloatX is based on the FlexFloat library 's idea of emulating reduced-precision floating  types, but implements the FlexFloat functionality superset in C and provides C++ wrappers. FloatX has emerged from the Open Transprecision Computing initiative. It is available free of charge under the Apache License 2.0.

 

Eigen

Eigen is a C++ template library for linear algebra, including matrices, vectors, numeric solvers, and related algorithms. All sizes of the matrix are supported, from small, fixed matrices to arbitrarily large , dense matrices. Algorithms are chosen for reliability. All of the standard numeric types are supported. For speed, set your own expression templates to intelligently remove timeframes and enable lazy evaluation. Freely available under Mozilla Public License 2 and downloadable from the own project page, Eigen has been equipped with an API described by the proponents as expressive and clean and natural to C++ programmers. The test suite for Eigen has been run against a number of compilers to ensure reliability.

 

OpenCV

OpenCV, or Open Source Computer Vision Library, is a computer vision and machine learning library written in a native C++ format and available under a BSD license. OpenCV was designed to provide a common infrastructure for computer vision applications and accelerate the use of machine perception in commercial products. Over 2,500 optimized algorithms for face recognition, object detection, object classification, 3D model extraction, image search, and more, OpenCV has amassed a user community of more than 47,000 people. Available from the OpenCV project website, the library provides interfaces to C++, Java , Python, and Matlab, and supports Windows , Linux, Android, and MacOS. The CUDA and OpenCL interfaces are under development.

 

Windows Template Library

Originally from Microsoft, the Windows Template Library (WTL) has been an open source library for building lightweight Windows applications and UI components since 2004. Positioned as an alternative to the Microsoft Foundation Classes toolkit, WTL expands ATL and provides a set of classes for controls, dialogs, frame windows, and GDI objects.

 

Wt

Wt is a modern C++ web GUI library that allows developers to build interactive web interfaces with widgets without having to write JavaScript. A server-side solution, Wt requests handling and page rendering, providing built-in security, PDF rendering, a 2D and 3D painting system, an object-related mapping library, a charting library, and an authentication framework. The core library is open source, providing a single-page hybrid framework that can be deployed on Linux , Unix or Windows.

Developed by Emweb, Wt is compatible with both HTML5 and HTML4 browsers and plain HTML user agents. And Wt can integrate JavaScript libraries with third parties. With Wt, the application is defined as a widget hierarchy — ranging from generic widgets such as push buttons to specialized widgets such as the entire blog widget. The widget tree is rendered in the browser as HTML / JavaScript. Wt can be downloaded from the web page of the project. Both the terms of open source and commercial use are available.


1 comment:

Thanks

Climate Crisis and Innovation: Navigating Earth's Future

Climate Change: Recent Events and Technological Solutions 1. The Escalating Climate Crisis The climate crisis has intensified in recent year...