Boost es un conjunto de bibliotecas para el lenguaje de programación C++ que brinda soporte para tareas y estructuras como álgebra lineal , generación de números pseudoaleatorios , multiprocesamiento, procesamiento de imágenes , expresiones regulares y pruebas unitarias . Contiene 164 bibliotecas individuales (a partir de la versión 1.76). [3]
Todas las bibliotecas Boost están licenciadas bajo la Licencia de Software Boost, diseñada para permitir que Boost se use con proyectos de software libre y propietario. [4] Muchos de los fundadores de Boost están en el comité de estándares de C++ , y varias bibliotecas Boost han sido aceptadas para su incorporación en el Informe Técnico de C++ 1 , el estándar C++11 (por ejemplo, punteros inteligentes, subprocesos, expresiones regulares, aleatorios, proporción, tuplas) [5] [6] y el estándar C++17 (por ejemplo, sistema de archivos, cualquiera, opcional, variante, string_view). [7]
La comunidad Boost surgió alrededor de 1998, cuando se publicó la primera versión del estándar. Desde entonces ha crecido continuamente y ahora desempeña un papel importante en la estandarización de C++. Aunque no existe una relación formal entre la comunidad Boost y el comité de estandarización, algunos de los desarrolladores participan activamente en ambos grupos.
Diseño
Las bibliotecas están dirigidas a una amplia gama de usuarios de C++ y dominios de aplicación. Abarcan desde bibliotecas de uso general como la biblioteca de punteros inteligentes , pasando por abstracciones de sistemas operativos como Boost FileSystem , hasta bibliotecas dirigidas principalmente a otros desarrolladores de bibliotecas y usuarios avanzados de C++, como la metaprogramación de plantillas (MPL) y la creación de lenguajes específicos de dominio (DSL) (Proto).
Para garantizar la eficiencia y la flexibilidad, Boost hace un uso extensivo de plantillas . Boost ha sido una fuente de trabajo e investigación extensas sobre programación genérica y metaprogramación en C++. [8]
La mayoría de las bibliotecas Boost se basan en encabezados , consisten en funciones y plantillas en línea y, como tales, no es necesario compilarlas antes de su uso. Algunas bibliotecas Boost coexisten como bibliotecas independientes. [9] [10]
Personas asociadas
Entre los fundadores originales de Boost que aún están activos en la comunidad se encuentra David Abrahams . Nicolai Josuttis, autor de varios libros sobre C++, contribuyó a la biblioteca de matrices Boost en 2001. Existen listas de correo dedicadas al uso y desarrollo de bibliotecas Boost, activas a partir de 2023. [actualizar][ 11]
Licencia
Boost está licenciado bajo su propia licencia libre y de código abierto , conocida como Boost Software License. [13] Es una licencia permisiva al estilo de la licencia BSD y la licencia MIT , pero sin requerir atribución para la redistribución en forma binaria . [14] La licencia ha sido aprobada por OSI desde febrero de 2008 [15] [16] y es considerada una licencia de software libre , compatible con la Licencia Pública General GNU , por la Free Software Foundation . [12]
Véase también
- Apache Portable Runtime : utilizado por el servidor HTTP Apache
- GLib – el equivalente sobre el que se construyó GNOME
- KDE Frameworks : el equivalente sobre el que se basa la compilación de software de KDE
- Lista de bibliotecas de plantillas de C++
- Software que utiliza la licencia Boost (categoría)
- Biblioteca de plantillas estándar
Referencias
- ^ "Versiones antiguas" . Consultado el 11 de abril de 2017 .
- ^ "Versión 1.86.0".
- ^ "Lista de bibliotecas Boost".
- ^ "Licencia de software de Boost". www.boost.org . Consultado el 6 de enero de 2022 .
- ^ "Library Technical Report". JTC1/SC22/WG21 - Comité de estándares de C++. 2 de julio de 2003. Consultado el 1 de febrero de 2012 .
- ^ "Una API de subprocesos para C++".
- ^ "Sitio StackOverflow.com".
- ^ Abrahams, David; Gurtovoy, Aleksey (10 de diciembre de 2004). Metaprogramación de plantillas de C++: conceptos, herramientas y técnicas de Boost y más allá . Pearson Education. pág. 408.
- ^ "Sitio web de Asio".
- ^ "Sitio web de Spirit".
- ^ "Listas de correo de impulso (también conocidas como grupos de discusión)" . Consultado el 28 de abril de 2020 .
- ^ abcd "Varias licencias y comentarios sobre ellas - Proyecto GNU - Free Software Foundation (FSF)".
- ^ "Licencia de software Boost - Versión 1.0" (TXT) . 17 de agosto de 2003. Consultado el 22 de diciembre de 2023 .
- ^ Dawes, Beman. "Impulsar la licencia de software" . Consultado el 1 de agosto de 2016 .
- ^ "Archivo de listas de correo de Boost". Archivado desde el original el 7 de noviembre de 2016.
- ^ "Licencia de software Boost 1.0 (BSL-1.0) | Iniciativa de código abierto". 5 de febrero de 2008.
Lectura adicional
- Demming, Robert y Duffy, Daniel J. (2010). Introducción a las bibliotecas Boost C++ . Vol. 1 - Fundamentos. Datasim. ISBN 978-94-91028-01-4.
- Demming, Robert y Duffy, Daniel J. (2012). Introducción a las bibliotecas Boost C++ . Vol. 2 - Bibliotecas avanzadas. Datasim. ISBN 978-94-91028-02-1.
- Mukherjee, Arindam (2015). Bibliotecas Learning Boost C++ . Paquete. ISBN 978-1-78355-121-7.
- Polukhin, Antonio (2013). Libro de recetas de desarrollo de aplicaciones Boost C ++ . Paquete. ISBN 978-1-84951-488-0.
- Polukhin, Antonio (2017). Libro de recetas de desarrollo de aplicaciones Boost C++ (2 ed.). Paquete. ISBN 978-1-78728-224-7.
- Schäling, Boris (2011). Las bibliotecas Boost C++ . XML Press. ISBN 978-0-9822191-9-5.
- Schäling, Boris (2014). Las bibliotecas Boost C++ (2.ª edición). XML Press. pág. 570. ISBN 978-1-937434-36-6.
- Siek, Jeremy G.; Lee, Lie-Quan y Lumsdaine, Andrew (2001). La biblioteca Boost Graph: guía del usuario y manual de referencia . Addison-Wesley. ISBN 978-0-201-72914-6.
Enlaces externos
- Sitio web oficial