12 biblioteques de primer nivell per a programació en C++

C++ és un llenguatge de programació de sistemes de propòsit general que ara té més de 40 anys d’antiguitat i que va ser dissenyat l’any 1979. Lluny de perdre força, C++ encara ocupa el primer lloc dels índexs de popularitat de múltiples llenguatges de programació.

Suavitzar el camí cap a l’ús de C++ és un ampli suport per al llenguatge entre els fabricants d’IDE, editors, compiladors, marcs de prova, qualitat de codi i altres eines. Els desenvolupadors de programari també tenen a la seva disposició moltes biblioteques excel·lents per ajudar a crear aplicacions C++. Aquí hi ha 12 en què confien els desenvolupadors de C++.

Biblioteca de plantilles activa

De Microsoft, Active Template Library (ATL) és un conjunt de classes C++ per construir objectes COM (Common Object Model), amb suport per a funcions COM com ara interfícies duals, interfícies d’enumerador COM estàndard, punts de connexió i controls ActiveX. Disponible amb l’IDE de Visual Studio, ATL es pot utilitzar per crear objectes d’un sol fil, objectes de model d’apartament, objectes de model de fil lliure o objectes de fil lliure i de model d’apartament.

Biblioteca Asio C++

La biblioteca Asio C++ s’utilitza per a la programació de xarxa i d’E/S de baix nivell, oferint un model asíncron coherent. Proporcionant blocs bàsics de concurrència, xarxes C++ i altres tipus d’E/S, Asio s’ha utilitzat en aplicacions que van des d’aplicacions per a telèfons intel·ligents i jocs fins a llocs web altament interactius i sistemes de transaccions en temps real. Els projectes que utilitzen Asio inclouen la biblioteca WebSocketPP i el depurador remot DDT3 per a l’idioma Lua. Asio està disponible com a codi obert gratuït sota la llicència de programari Boost i és compatible amb Linux, Windows, MacOS i FreeBSD.

Estímul

Boost ofereix biblioteques font C++ portàtils gratuïtes i revisades per parells, accessibles des de boost.org, que funcionen amb la biblioteca estàndard de C++. Les biblioteques Boost estan pensades per utilitzar-se en tot un espectre d’aplicacions. Entre la col·lecció hi ha biblioteques per a JSON, matemàtiques, multiíndex, sistema de fitxers i geometria. Boost funciona amb la majoria de sistemes operatius moderns, inclosos Linux, Unix i Windows. Les distribucions de Linux i Unix com Debian, Fedora i NetBSD ja inclouen paquets Boost preconstruïts.

Cinder

Cinder és una biblioteca de codi obert per a “codificació creativa” en C++. Útil per a aplicacions com l’àudio, la geometria computacional, els gràfics i el vídeo, Cinder admet finestres natives de plataforma i gestió d’esdeveniments, juntament amb l’abstracció d’E/S, i té una API integrada per a l’anàlisi XML i JSON. Dissenyada al voltant de funcions idiomàtiques de C++11 com shared_ptr, la biblioteca inclou nombroses mostres. Cinder és compatible amb MacOS, iOS, Linux, Windows i Windows UWP.

Eigen

Eigen és una biblioteca de plantilles C++ per a àlgebra lineal, que inclou matrius, vectors, solucionadors numèrics i algorismes relacionats. S’admeten totes les mides de matriu, des de matrius petites i fixes fins a matrius arbitràriament grans i denses. Els algorismes es seleccionen per fiabilitat. S’admeten tots els tipus numèrics estàndard. Per a la velocitat, Eigen inclou plantilles d’expressió per eliminar de manera intel·ligent els temporals i permetre l’avaluació mandrosa. Disponible gratuïtament sota la llicència pública de Mozilla 2 i baixable des de la pàgina del projecte Eigen, Eigen s’ha equipat amb una API descrita pels defensors com expressiva, neta i natural per als programadors de C++. La suite de proves per a Eigen s’ha executat amb molts compiladors per garantir la fiabilitat.

FloatX

FloatX, o Float eXtended, és una biblioteca només de capçalera per a l’emulació de tipus de coma flotant de baixa precisió. Tot i que és compatible de manera nativa amb compiladors C++, FloatX pot ser cridat per altres llenguatges com Python o Fortran. Els tipus de coma flotant s’estenen més enllà dels tipus natius de precisió simple i doble. Es proporcionen tipus de plantilles que permeten a l’usuari seleccionar el nombre de bits utilitzats per a l’exponent, així com les parts significatives del nombre de coma flotant. FloatX es basa en la idea de la biblioteca FlexFloat per emular tipus flotants de precisió reduïda, però implementa un superconjunt de funcionalitats FlexFloat en C i proporciona embolcalls C++. FloatX va sorgir de la iniciativa Open Transprecision Computing. Està disponible gratuïtament sota la llicència Apache 2.0.

OpenCV

OpenCV, o Open Source Computer Vision Library, és una biblioteca de visió per ordinador i aprenentatge automàtic escrit de manera nativa en C++ i disponible amb una llicència Apache 2. OpenCV es va crear per proporcionar una infraestructura comuna per a aplicacions de visió per ordinador i accelerar l’ús de la percepció de la màquina en productes comercials. Més de 2.500 algorismes optimitzats per al reconeixement facial, detecció d’objectes, classificació d’objectes, extracció de models 3D, cerca d’imatges i molt més, OpenCV ha acumulat una comunitat d’usuaris de més de 47.000 persones. Disponible al lloc web del projecte OpenCV, la biblioteca proporciona interfícies C++, Java, Python i Matlab i és compatible amb Windows, Linux, Android i MacOS. Les interfícies CUDA i OpenCL estan en desenvolupament.

Biblioteques Poco C++

Destinades a simplificar el desenvolupament de C++, les biblioteques C++ Poco (Components portàtils) són biblioteques C++ multiplataforma per crear aplicacions d’Internet i de xarxa per executar-se en sistemes que van des d’escriptoris i servidors fins a dispositius mòbils i IoT. Les biblioteques també es poden utilitzar per crear microserveis amb API REST per a l’aprenentatge automàtic o l’anàlisi de dades. Les biblioteques Poco són similars en concepte a la biblioteca de classes Java, .NET Framework de Microsoft o Apple Cocoa.

Els desenvolupadors poden utilitzar les biblioteques Poco per crear servidors d’aplicacions en C++ que parlin amb bases de dades SQL, Redis o MongoDB, o per crear programari per a dispositius IoT que parlin amb back-ends del núvol. Entre les característiques de les biblioteques hi ha un marc de memòria cau, maneig de formularis HTML, un client FTP per transferir fitxers i un servidor i client HTTP. Les biblioteques Poco estan disponibles gratuïtament sota la llicència de programari Boost i es poden descarregar des de GitHub.

Velox

Velox és una biblioteca d’execució vectoritzada i incrustable per a sistemes OLAP. La biblioteca està pensada per optimitzar els sistemes de processament de dades i els motors de consultes. El projecte es va iniciar com a projecte d’enginyeria interna a Facebook el 2020 i després de codi obert. En escenaris d’ús habituals, Velox pren com a entrada un pla de consultes totalment optimitzat i realitza el càlcul descrit. Els components inclouen un sistema d’escriptura d’alt nivell, un mòdul de memòria columnar, paquets de funcions i serialitzadors de xarxa. Velox està disponible a GitHub al repositori de Facebook Incubator.

Biblioteca de plantilles de Windows

Originària de Microsoft, la biblioteca de plantilles de Windows (WTL) és (des de 2004) una biblioteca de codi obert per crear aplicacions lleugeres de Windows i components d’IU. Col·locat com una alternativa al conjunt d’eines de Microsoft Foundation Classes, WTL amplia ATL i proporciona un conjunt de classes per a controls, diàlegs, finestres de marc i objectes GDI.

pes

Wt és una biblioteca de GUI web en C++ modern que permet als desenvolupadors crear interfícies d’usuari web interactives amb ginys, sense haver d’escriure JavaScript. Una solució del costat del servidor, Wt sol·licita manipulació i representació de pàgines, proporcionant seguretat integrada, renderització de PDF, un sistema de pintura 2D i 3D, una biblioteca de mapes relacionats amb objectes, una biblioteca de gràfics i un marc d’autenticació. La biblioteca bàsica és de codi obert, proporcionant un marc híbrid d’una sola pàgina que es pot desplegar a Linux, Unix o Windows.

Desenvolupat per l’empresa d’enginyeria de programari Emweb, Wt és compatible amb els navegadors HTML5 i HTML4, així com amb els agents d’usuari HTML senzill. I Wt es pot integrar amb biblioteques de JavaScript de tercers. Amb Wt, una aplicació es defineix com una jerarquia de ginys, que van des de ginys genèrics, com ara botons polsadors, fins a ginys especialitzats, com ara un giny de bloc sencer. El widget d’arbre es representa com a HTML/JavaScript al navegador. Wt es pot descarregar des de la pàgina web del projecte. Els termes d’ús comercial i de codi obert estan disponibles.

Yocto/GL

Yocto/GL és una col·lecció de petites biblioteques C++17 per construir algorismes de gràfics basats físicament. Està escrit en un estil orientat a dades per facilitar el desenvolupament i dividit en petites biblioteques per facilitar la navegació pel codi. Les dades s’emmagatzemen en estructures senzilles i s’hi accedeix amb funcions gratuïtes o directament.

Yocto/GL inclou codi del generador de números aleatoris de PCG, boost hash_combine, i biblioteques externes de domini públic o que s’incloguin amb llicències pròpies. Els desenvolupadors de Yocto/GL prefereixen un enfocament funcional més que orientat a objectes, afavorint les funcions lliures als mètodes de classe. Les funcions i les dades es defineixen en espais de noms germans continguts a l’espai de noms yocto.

Yocto/GL es publica sota la llicència MIT i està disponible a GitHub. Es requereix un compilador C++17.

Copyright © 2022 IDG Communications, Inc.

Leave a Comment

Your email address will not be published. Required fields are marked *