МАЛЕНЬКИЕ библиотеки C++
Разработчик(и) | Гюнтер Обильчниг и др. |
---|---|
Первоначальный выпуск | 21 февраля 2005 г [ 1 ] |
Стабильная версия | |
Репозиторий | POCO-репозиторий |
Написано в | С++ |
Операционная система | Кроссплатформенность : Десктоп-сервер : Windows , Linux , macOS , Solaris , HP-UX , AIX Встроенные мобильные устройства : Windows Embedded Compact , встроенный Linux , Android , iOS , QNX , VxWorks |
Платформа | АРМ , ИА-32 , x86-64 |
Доступно в | Английский |
Тип | библиотека или фреймворк |
Лицензия | Программное обеспечение Boost 1.0 |
Веб-сайт | Покопроект |
Библиотеки POrtable COMComponents ( POCO ) C++ — это компьютерное программное обеспечение , набор библиотек классов для разработки компьютерных сетевых , переносимых приложений на языке программирования C++ . Библиотеки охватывают такие функции, как потоки потоков , синхронизация , доступ к файловой системе , потоки , общие библиотеки и загрузка классов, интернет-сокеты и протоколы сетевых коммуникаций ( HTTP , FTP , SMTP и т. д.), а также включают HTTP-сервер и XML-файл. парсер с SAX2 и DOM интерфейсами и доступом к базе данных SQL . Модульная и эффективная конструкция и реализация делают библиотеки хорошо подходящими для разработки встраиваемых систем .
Библиотеки являются бесплатным программным обеспечением с открытым исходным кодом , распространяемым по лицензии Boost Software License 1.0.
Обзор
[ редактировать ]POCO — это набор библиотек C++, предоставляющий пользователям поддержку библиотек, аналогичную той, которая имеется в других средах разработки, таких как библиотека классов Java , .NET Framework или Apple Cocoa . POCO ориентирован на сетецентрические области приложений и разработан с использованием современных средств и методов стандарта ANSI/ISO C++ и стандартной библиотеки C++ с упором на мощные функциональные возможности, простоту использования и согласованность. Благодаря качеству кода, единообразию стиля и модульному тестированию POCO обладает высокой переносимостью и уже портирован на множество различных платформ.
История
[ редактировать ]Иерархия библиотеки
[ редактировать ]По состоянию на 2017 год [update], Библиотеки POCO C++ разделены на пять основных библиотек с дополнительными дополнительными библиотеками, доступными в каждом выпуске. Дизайн и иерархия POCO C++ считаются хорошо продуманными. [ 3 ] [ 4 ] Пять основных библиотек компонентов охватывают следующие области, которые можно найти в базовой версии:
- Фундамент
-
- Абстракция платформы – упрощает портирование фундаментальных типов и т. д.
- Управление памятью — инициализация сбора ресурсов (RAII), auto_ptr, сборка мусора с подсчетом ссылок и т. д.
- Строковые утилиты
- Обработка ошибок – расширенные классы исключений
- потоки – поддержка кодирования, декодирования и фильтрации.
- потоки – поддержка параллельной обработки
- Дата и время — поддержка даты и времени, включая форматирование и таймеры высокой точности.
- Файловая система – поддержка абстрактной файловой системы.
- Ведение журнала — ведение журнала приложений и системы, стратегии фильтрации и регистрации.
- Процессы – межпроцессное взаимодействие и совместное использование памяти.
- общие библиотеки – поддержка динамических библиотек
- Уведомления – поддержка абстрактных уведомлений.
- События – абстрактная поддержка событий и стратегии.
- Crypt — генерация случайных чисел, дайджесты и механизмы кодирования/декодирования.
- Текст — поддержка кодировки Unicode.
- Регулярные выражения – на основе регулярных выражений, совместимых с Perl.
- URI — поддержка универсального идентификатора ресурса.
- UUID — поддержка и генераторы универсально уникальных идентификаторов
- Поддержка кэша – поддержка абстрактной стратегии
- Сеть
-
- сокеты – абстрактная поддержка сети низкого уровня.
- Шаблон Reactor — поддержка популярных шаблонов сетевой абстракции.
- Сообщения MIME – поддержка кодирования
- HTTP – поддержка HTTP высокого уровня для клиента и серверов.
- FTP – поддержка FTP высокого уровня.
- Почта — поддержка POP3, SMTP-потоков.
- HTML — поддержка форм
- XML
-
- САКС2
- Объектная модель документа (DOM)
- XML- писатель
- JSON
-
- API для чтения и записи JSON
- Утилита
-
- Конфигурационные файлы
- Параметры командной строки
- Инструменты и платформа серверных приложений
Одна из целей проектирования многих целевых решений основана на POCO C++, предоставляющем простую в использовании библиотеку компонентов, которая работает « из коробки» . По состоянию на 2017 год [update], библиотеки доступны в двух форматах пакетов: базовой и полной редакциях. Полное издание охватывает, среди прочего, возможности NetSSL, Crypto, Zip и Data. Базовая версия этого не делает и, таким образом, устраняет зависимость от внешних средств, таких как зависимости OpenSSL, ODBC и MySQL.
Открытый исходный код позволяет и поощряет разработку дальнейших функций библиотеки. Проектирование и развитие существующей и будущей поддержки библиотек обусловлено прагматическими потребностями пользовательской базы. Дополнения библиотеки происходят в среде разработки «песочницы», проверяются и интегрируются в основные выпуски библиотеки, одобренные основной командой разработчиков при участии участников.
История выпусков
[ редактировать ]- 2004 — Гюнтер Обильчниг основал POCO с разработки библиотек классов, поскольку был неудовлетворен тем, что было доступно в библиотеках классов C++ для сетецентрического программирования.
- 21 февраля 2005 г. — первый публичный выпуск на SourceForge под лицензией Sleepycat содержал библиотеки поддержки Foundation и XML.
- Май 2005 г. – Александр Фабиджанич сделал первый вклад.
- 19 января 2006 г. — выпущен POCO 1.0, включая библиотеку Net.
- Июль 2006 г. — POCO было повторно лицензировано по лицензии Boost.
- Май 2007 г. — выпущен POCO 1.3, включая библиотеку данных.
- Декабрь 2010 г. — выпущена версия POCO 1.4, включающая множество улучшений.
- Декабрь 2014 г. — выпущен POCO 1.6, включая библиотеки JSON и MongoDB, а также множество других улучшений.
- Март 2016 г. — выпущен POCO 1.7 со множеством улучшений.
- Март 2018 г. — выпущен POCO 1.9, включая поддержку интернационализированных доменных имен и дополнения к поддерживаемым кодировкам текста.
Пользователи
[ редактировать ]Среди пользователей: [ 5 ]
- Appcelerator Титан
- Schneider Electric Buildings (ранее TAC )
- КАСЕ Технологии
- Богомол
- Набор инструментов для взаимодействия с медицинскими изображениями
- OpenFrameworks
- GLUEскрипт
- СегуриДанные
- Айссо Системы
- Тонидо
- Гладинец
- Устройство коммуникационного реализма армии США (CRA)
См. также
[ редактировать ]- Адаптивная коммуникационная среда (ACE)
- Boost (библиотеки C++) — большой набор библиотек C++.
- Локи (С++)
- Список библиотек шаблонов C++
- Список многопоточных библиотек C++
Ссылки
[ редактировать ]- ^ 21 февраля 2005: Первый публичный выпуск на SourceForge под лицензией Sleepycat содержал библиотеки поддержки Foundation и XML.
- ^ «Релизы — pocoproject/poco» . Проверено 10 июля 2024 г.
- ^ «Почему POCO хорошо реализован и спроектирован?» . 24 сентября 2009 г.
- ^ Меркл, Бернхард. Остановите эрозию архитектуры программного обеспечения (PDF) . АККУ 2009 . Проверено 12 июля 2024 г.
- ^ «Просмотр темы — Список известных пользователей библиотек POCO C++ | Форум библиотек POCO C++» . Архивировано из оригинала 26 августа 2013 г. Проверено 1 февраля 2011 г.