LINUX.ORG.RU

Без шума и пыли вышла очередная версия кроссплатформенной библиотеки libconfig 1.1.2


0

0

Почему-то на ЛОР мало упоминаний о данной библиотеке. Но я лично использовал ее в нескольких кроссплатформенных проектах и считаю, что она очень проста, удобна в использовании и достойна внимания сообщества ЛОРа :)

Libconfig - простая библиотека для обработки структурированных файлов конфигурации. Этот формат является более компактным и более удобным, чем XML (ознакомится с ним можно на сайте проекта).

Библиотека содержит заголовки для обоих C и C++ языков программирования. Ее можно использовать на POSIX-совместимых UNIX системах (GNU / Linux, Mac OS X, Solaris, FreeBSD) и Windows (2000, XP и выше).

Лицензия: LGPL

>>> Сайт проекта

Либцы такия, глибцы под гнусным соусом сякия ... Одним прогам подавай такие либцы, другим такие глибцы, и все они хреново совместимы между собой, но приэтом стремятся соответствовать всяким там позиксам

anonymous
()

>Библиотека содержит заголовки для обоих C и C++ языков программирования.

Это предложение на каком языке написано?

true
()

Ну - почти JSON.

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

>Это предложение на каком языке написано?

Наверно на таком же:

Либцы такия, глибцы под гнусным соусом сякия ... Одним прогам подавай такие либцы, другим такие глибцы, и все они хреново совместимы между собой, но приэтом стремятся соответствовать всяким там позиксам

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

Прошу прошения, но XML - стандарт де факто, а это поделие на что претендует? Бессмысленный проект, имхо.

anonymous
()

Занятно.... Посмотрю на досуге. Но для XML'я это врядли замена. Праздник XML'я в том, что он простой, как валенок, а у этой штуки более сложный синтаксис.

>...And unlike XML, it is type-aware, so it is not necessary to do string parsing in application code...

Хм... Для этих целей есть DTD. Могучая штука.

Из плюсов порадовал сравнительно небольшой размер библиотеки...

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

> Давайте еще сделаем язык программирования, на котором все исходники будут XML...

XSLT уже сто лет существует. По стандарту он, правда, не Тьюринг-полный, но всякие расширения это меняют (MSXML 3.0, и под топик тоже что-то есть).

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

>Давайте еще сделаем язык программирования, на котором все исходники будут XML...

Уже есть. Погугли на тему STAF/STAX

anonymous
()

Хмм.. а мне понравилось. Если потребуется что-либо более сложное чем ini, то обязательно попробую сию либу. Ибо хмель - блевотина. С таким же успехом можно использовать двоичный конфиг.. :Е

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

> Прошу прошения, но XML - стандарт де факто, а это поделие на что претендует? Бессмысленный проект, имхо.

Ты наркоман штоле? XML - это отстой де факто. А здесь мы имеем вполне приятный синтакисис конфиг-файлов, удобный для ручной правки.

Also, XML - это язык _разметки_ и для конфигов его используют только дебилы умственно отсталые, которые ложку мимо рта в ухо несут.

miroku108
()

>Либцы такия, глибцы под гнусным соусом сякия ... Одним прогам подавай такие либцы, другим такие глибцы, и все они хреново совместимы между собой, но приэтом стремятся соответствовать всяким там позиксам

И какое отношение это имеет к теме)

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

>Also, XML - это язык _разметки_ и для конфигов его используют только дебилы умственно отсталые, которые ложку мимо рта в ухо несут.

О, Великий Гуру конфигов! Расскажите, нам, отсталым, чем же так плох XML-based конфиг?

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

>Also, XML - это язык _разметки_ и для конфигов его используют только дебилы умственно отсталые, которые ложку мимо рта в ухо несут.

Он наверное думает, что XML - это от мелкософта, значит это плохо

SergeDaniloff
()
Ответ на: комментарий от Sectoid

> Праздник XML'я в том, что он простой, как валенок

действительно, XML jpg картинки с яблоком суть само яблоко... осталось спросить зачем изобретать велосипед...

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

> О, Великий Гуру конфигов! Расскажите, нам, отсталым, чем же так плох XML-based конфиг?

он слишком многословен, плохо читаем и неудобен для ручной правки.

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

Скажи, нам, чудик, что разработчики кедов и гнома совсем отсталые, а ты самый просгресивный. Покажи, нам, осталым , что ты написал, поучи нас отсталых и убогих ;-)

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

>Скажи, нам, чудик, что разработчики кедов и гнома совсем отсталые, а ты самый просгресивный.

А в кедах используются обычные ini-конфиги.

true
()
Ответ на: комментарий от atrus

>О! Почти bind'овский конфиг. :)

А мне апачевский напомнило (только если скобки на теги заменить).

XML -- оно, конечно, неплохо задумано, но слишком часто

color = 0xa07040

превращается в

<color><red>160</red><green>112</green><blue> ;64</blue></color>

Ручная правка такого конфига вызывает приступы эпилепсии или морской болезни, в зависимости от предрасположенности.

Судя по тому, что написано по ссылке, надо попробовать как-нибудь.

lodin ★★★★
()

Мдаа.. ребятушки.. :0 На лор-е наплыв извращенцев-вантузятников, повсеместно использующий хмл-конфиги.. прямо-таки ужос какой-то.

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

точно, видимо кедовики живут в прошлом веке ;-)

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

TO anonymous (*) (25.06.2007 0:07:43) а что ты думаешь использовать для кросплатформенной разработки? INI файлы? Ты отстал от жизни дет на 20

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

>color = 0xa07040

>превращается в

><color><red>160</red><green>112</green><blu e> ;64</blue></color>

А почему не в <color rgb="#A07040"/>?

По вредности душевной?

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

>...And unlike XML, it is type-aware, so it is not necessary to do string parsing in application code...

— Function: long config_setting_get_int (const config_setting_t * setting)
— Function: double config_setting_get_float (const config_setting_t * setting)
— Function: int config_setting_get_bool (const config_setting_t * setting)
— Function: const char * config_setting_get_string (const config_setting_t * setting)


В каком месте он type-aware?:)))

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

>В каком месте он type-aware?:)))

Вероятно имелось в виду, что "123" - это строка, а 123 - число. :) Т.е. в конфиге содержатся сведения о типе параметра.

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

Зато на XML удобно делать сложно структурированные форматы (например расположение юнитов с их параметрами на карте в игрушке) и до того как есть нормальный редактор - готовить файлы руками % ))). И вообще XML надо править не в простом текстредакторе а в специально натасканном на XML %).

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

ТО anonymous (*) (25.06.2007 0:12:34)

Бугаг. Для тебя конфигурационные файлы являются основной сложностью при кросплатформенной разработке? о-О Да и тут вариантов огромное количество помимо говноэксемеля..

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

> И вообще XML надо править не в простом текстредакторе а в специально натасканном на XML %).

не подскажете пару таких некоммерческих под винду?

anonymoos ★★★★★
()

Ну... каждому свое...

XML - это конечно хорошо, парсеры уже давно написанны, ничего нового придумывать не надо, можно сказать, что он почти стандарт. Однако, уж больно он болшой и неудобочитаемый. Его ручная правке не шибко приятная вешь.

libconfig - с тойже функционатьностью (а то больше), однако на вид гозадо приятней и полегче нежели xml.

Давно уже надо было бы чего-нить типо libconfig (или хотя бы приметивный ini) взять за стандарт конфигов!!!

xstream
()

> Библиотека содержит заголовки для обоих C и C++ языков программирования

"и кантри, и вестерн"

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

> походу иксемельщики уже совсем дернулись =)

Перфекционизм - болезнь многих программистов, не только иксемельщиков. ;)

execve
()

Если конфиг большой и сложный, то это XML. Если конфиг маленький и понятный, то это тоже XML, потому что какой смысл городить маленький конфиг-файл? И так же всё понятно!

DOKA
()

Глянул по ссылке. Ой мама родная! Какой велосипед. Я-то думал что ограничится всё банальными [section] param=value

И читать его не проще чем XML

DOKA
()

я xml юзал, юзаю и буду юзать. Удобно хранить, удобно парсить удобно работать. Когда надо - удобно править в vim.

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

> не подскажете пару таких некоммерческих под винду?

Altova Authentic

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

про себя такон сказать не хочешь? а насчет xml - только на днях перевел конфиги с него на обычный текстовый файл ( с помощью wxFileConfig - вещь ), потому как при частичной порче файла из xml уже ничего толком не вытащишь, да и нафига он нужен - лишний размер и не читаемость на глаз конфига.

lester ★★★★
()

Формат интересный, да.

Но как задумаешься о кодировках, искейпинге, валидации, поддержке чего-нить типа перекрёстных ссылок и прочих давным-давно решённых в рамках XML проблемах, так сразу становится грустно.

Как у libconfig, например, с русским языком? Беглое изучение документации ничего не нашло.

execve
()

Ну и вот почему не YAML?
YAML и JSON -- практически одно и то же, при этом активно используются не только для конфигов. Имхо, было бы логично рассматривать их как основную альтернативу нечитабельному XML.

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

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

На счёт type aware странно как-то звучит: Если описание формата произведено с помощью XML Schema, то тип определить можно (и, например, libxml2 и msxml это умеют делать)

BETALb
()
Ответ на: комментарий от amix

во-во, а в JSON, к тому-же есть жёсткое требование - он должен быть в UTF-8, так что и проблема с кодировками отпадает

Да и либы для работы с json уже есть, причём для гораздо бОльшего количества языков: http://json.org/

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

>Расскажите, нам, отсталым, чем же так плох XML-based конфиг?

Он уже сказал - руками править плохо. Пока обозреешь километровую цепочку тегов (тоже немаленьких), уже забудешь, что править хотел.

jackill ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.