LINUX.ORG.RU

Platform-Independent Primitives (PIP)

 , , , ,


3

6

PIP — кроссплатформенная легковесная библиотека под C++ (99), упрощающая написание консольных программ. Представляет собой связный набор классов, макросов и функций, которые значительно упрощают написание кода во многих прикладных областях. Основной упор в библиотеке сделан на функциональность, конфигурируемость и минимизацию конечного кода.

Основной класс PIObject предоставляет механизм «событие — обработчик», реализованный на макросах.

Предоставляет классы:

  • контейнеров;
  • строк;
  • потока;
  • таймера;
  • устройств ввода-вывода (файлы, UDP, TCP, COM-порт, разделяемая память, конфигурационные файлы и пр.);
  • консоли или терминала (отрисовка интерфейсов и обработка пользовательского ввода);
  • шифрования;
  • сжатия;
  • математики;
  • и другое.

Также даёт возможность сгенерировать файлы с метаинформацией С++ сущностей при помощи утилиты, входящей в состав библиотеки.

Интеграция с системой сборки CMake (поиск, инклюды, макрос для генерации метафайлов).

Опциональная зависимость от внешних библиотек:

  • libicu — поддержка кодировок (для Windows очень желательна);
  • libusb — поддержка работы с USB-устройствами;
  • libsodium — поддержка шифрования;
  • libfftw3 - поддержка БПФ;
  • libz — поддержка сжатия.

При сборке проверяется наличие сторонних зависимостей и выполняется сборка соответствующих модулей.

Документация находится в папке doc/html, на данный момент ещё в разработке.

Проверялась на ОС:

  • Windows XP, 7, 8, 10;
  • Linux (Ubuntu, Debian, Gentoo, Raspbian)l
  • Android;
  • Mac OS X;
  • проверялось давно:
    • FreeBSD;
    • Blackberry OS;
    • QNX.

>>> Скачать



Проверено: Shaman007 ()
Последнее исправление: cetjs2 (всего исправлений: 2)
Ответ на: комментарий от blizer

начинал с Qt
было легче войти в мир C++

И не знать стандартной библиотеки, ммм...

Rot1
()
Ответ на: комментарий от blizer

А я очень рад что до вхождения в Qt несколько лет писал на C++ без него, и еще до этого пару лет на чистом C. Иначе был бы кошмар, скорее всего вы просто не знаете что многого не знаете.

Бегло глянул в исходники - да, код грязный даже для C++98 (в логику не вникал). Ладно кодстайл - субъективно (но он плох). Директивы препроцессора ни с того ни с сего уезжают далеко вправо (что уже нарушение). Нет списков инициализации, нет константности там где она напрашивается. daemon.cpp - половина методов начинается с «if (!x) return;» что намекает на логические протечки. В классах владеющие сырые указатели, так и не нашел где освобождается память. Они же отдаются наружу. Всюду магические числа. Указатели void* с кастами к нужным типам.

Если предположить что всё отлажено и ошибок сейчас нет - они будут, ибо код расползается на части. Серьезно, «наркоманский» boost читается проще, да и Qt (внутре там нормальный код, кстати).

Вышесказанное претендует на поверхностную, но конструктивную критику /*)

anonymous
()
Ответ на: комментарий от Rot1

Сейчас бы писать на фреймворке для C++ и не знать C++... Толсто.

Суровая правда жизни. Посмотрите хотя бы на такого персонажа, как RazrFalcon. Он не умеет в C++ за пределами Qt. Так что даже на LOR-е легко найти подтверждения словам tailgunner-а.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Если я не пишу четырёхэтажные шаблоны - я не знаю C++? Ну ок.

RazrFalcon ★★★★★
()
Ответ на: комментарий от anonymous

Честно не знаю как вы смотрели исходники, но у меня ничего никуда не уезжает (может у вас что-то с редактором). daemon.cpp - это не составляющая библиотеки и не претендует на красивость понятность, хотя надо бы... но пока не срослось, и да sysytem_daemon одна из самых хреново написаных утилит, хотя работает. Посмотрите хотя бы код самой библиотеки

blizer
()

написание консольных программ

Прочитал как «написание костыльных программ». Много думал.

anonymous
()
Ответ на: комментарий от Rot1

qss

Работает через очко и сильно глючит в сравнении с теми же CSS в JavaFX.

EXL ★★★★★
()
Ответ на: комментарий от Rot1

Сейчас бы писать на фреймворке для C++ и не знать C++... Толсто.

В «Qt и C++» слишком низкий порог вхождения, знать C++ там можно лишь поверхностно.

Qt стал этаким Delphi современного мира. Кстати, если покопаться на мертвых форумах делфистов, они все бегут либо на Qt, либо на .NET, со всеми вытекающими. Как они в своё время не знали Pascal и программировали мышкой, так и современные Qt-шники (в массе, за всех не говорю конечно) не знают C++ и программируют мышкой.

И ещё их отличает уровень нездорового фанатизма и «синдрома утёнка». Они пытаются пропихнуть Qt в любую щель. Вот, даже в этой теме уже нашёлся фанатик, который отписался в стиле «Родина дала нам Qt». Как известно, фанатизм до добра не доводит и авторитет Qt-разработчиков из-за таких вот утят постепенно снижается. Их уже не считают программистами на C++, пройдёт время и они будут котироваться примерно так же, как разработчики приложений на Electron или web-сайтов на PHP.

Это, конечно, если вовремя глотку фанатикам Qt не заткнуть, не оградить их от нормальных Qt-разработчиков, которые, например, понимают и принимают недостатки и возможности этого фреймворка. Понимают, где можно и нужно воспользоваться Qt, а где он противопоказан.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)
Ответ на: комментарий от anonymous

Понимают, где можно и нужно воспользоваться Qt, а где он противопоказан.

А где он противопоказан?

EternalNewbie
()
Ответ на: комментарий от dimgel

Кто предпочтёт неизвестно что общепринятым openssl/libressl?

следуя простой логике, малоизвестные шифры более вероятно, что не взломаны ещё спецслужбами

anonymous
()
Ответ на: комментарий от EXL

В «Qt и C++» слишком низкий порог вхождения

Разве не у всех фреймворков низкий порог вхождения? Qt достаточно мощный и гибкий инструмент, там полно мест, за которые «прогаммист мышкой» никогда не возьмется. Что плохого в том, что он подходит и профессионалам, и новичкам? - пусть учатся. Проблема в говнокодерах, которые не хотят понимать, как работает то, что они пишут. Ведь Qt можно спокойно использовать в связке make + qt_libs + vim + moc + gcc + other_libs.

И ещё их отличает уровень нездорового фанатизма и «синдрома утёнка». Они пытаются пропихнуть Qt в любую щель.

Это так же плохо, как нездоровый хейт. Глупо отрицать, что эта библиотека внесла большой вклад в свободное ПО. Мне тоже не нравится пропихивание Qt в любую щель, это противоречит идеологии C++, но этим занимаются сами разработчики этой библиотеки.

не заткнуть

Если имеем популярный инструмент и его не менее популярную альтернативу, всегда будут разводить холивары. Это не только к библиотекам относится. Для мира gnu\linux это свойственно.

Rot1
()
Ответ на: комментарий от EXL

Qt стал этаким Delphi современного мира

mv, перелогинься

anonymous
()
Ответ на: комментарий от Iron_Bug

Да ерунда это. Qt ни в каком месте не прибит к гую, кроме (внезапно) QtGui и пары надстроек над ним. А QtCore, QtXml, QtSql, QtNetwork, наконец - всё это прекрасно собирается и без гуя.

У меня всё же ощущение, что у тебя представление о Qt на уровне «мне Рабинович по телефону напел». То, что люди на форуме по кроссплатформенному программированию жалуются на проблемы - так это на любом форуме так. 99% людей приходят на форумы со своими нерешёнными проблемами, и очень мало кто приходит с историями успеха. Это такая специфическая особенность психики гомосапиенсов, которую здоровому инопланетянину понять крайне тяжело. :)

hobbit ★★★★★
()
Ответ на: комментарий от ckotinko

Буханка, троллейбус... Вот, в сишечке вместо модульности сделали «замену на макросах» (точнее, на командах препроцессора), и ничего, прокатило, и уже 40 лет пипла хавает, и в кресты она тоже по наследству перешла. :P

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.