libyaml

Библиотека libyaml для парсинга и генерации данных в формате YAML. Обеспечивает высокую производительность и поддержку работы с YAML-документами в приложениях на C.

Подпакеты
Имя Краткое описание
libyaml-devel Описание отсутствует
lib32-libyaml 32-битные библиотеки для libyaml

Домашняя страница: https://pyyaml.org/wiki/LibYAML

Доступные версии
Версия Релиз Архитектура Лицензия Дата сборки Размер Версии ОС Подробности
0.2.5 1.niceos5 x86_64 MIT 24 апр. 2025 г. 142,213 МиБ Подробности
Описание

Описание пакета libyaml для Найс.ОС

Пакет libyaml представляет собой высокопроизводительную библиотеку на языке C, предназначенную для парсинга и генерации данных в формате YAML (YAML Ain't Markup Language). YAML — это человеко-читаемый формат сериализации данных, который часто используется для конфигурационных файлов, обмена данными между приложениями и хранения структурированных данных. Библиотека libyaml обеспечивает разработчикам удобный и эффективный инструмент для работы с YAML-документами в их программных проектах.

Основные возможности libyaml

Библиотека libyaml предлагает полный набор функций для работы с YAML-данными, включая:

  • Парсинг YAML-документов и преобразование их в структурированные данные, доступные для обработки в коде.
  • Генерацию YAML-данных из структур данных программы.
  • Поддержку всех основных конструкций YAML, включая скалярные значения, списки, словари и вложенные структуры.
  • Высокую производительность благодаря оптимизированной реализации на языке C.
  • Совместимость с различными платформами и операционными системами, включая Найс.ОС.

Для кого предназначен пакет libyaml?

Пакет libyaml будет полезен разработчикам, которые:

  • Создают приложения на языке C и нуждаются в поддержке формата YAML для работы с конфигурациями или данными.
  • Работают над проектами, требующими обмена данными между различными системами в человеко-читаемом формате.
  • Ищут легковесную и быструю библиотеку для обработки YAML-данных.

Примеры использования включают настройку серверных приложений, обработку конфигурационных файлов для DevOps-инструментов (например, Ansible или Kubernetes), а также разработку кроссплатформенных приложений.

Установка пакета libyaml на Найс.ОС

Для установки библиотеки libyaml на систему Найс.ОС используется пакетный менеджер dnf. Выполните следующую команду в терминале для установки пакета:

sudo dnf install libyaml

После установки вы также можете установить разработческие файлы (заголовочные файлы и документацию) для интеграции библиотеки в ваши проекты:

sudo dnf install libyaml-devel

Пример использования libyaml в коде на C

Ниже приведен простой пример использования библиотеки libyaml для парсинга YAML-документа. Этот код демонстрирует, как инициализировать парсер и обработать входные данные:

#include 
#include 

int main(void) {
    FILE *fh = fopen("config.yaml", "r");
    yaml_parser_t parser;
    yaml_token_t token;

    if (!yaml_parser_initialize(&parser)) {
        fputs("Failed to initialize parser!\n", stderr);
        return 1;
    }
    if (fh == NULL) {
        fputs("Failed to open file!\n", stderr);
        return 1;
    }

    yaml_parser_set_input_file(&parser, fh);

    do {
        yaml_parser_scan(&parser, &token);
        switch(token.type) {
            case YAML_KEY_TOKEN: printf("Key: ");
            case YAML_VALUE_TOKEN: printf("Value: ");
            case YAML_SCALAR_TOKEN: printf("%s \n", token.data.scalar.value);
            default: break;
        }
        if (token.type != YAML_STREAM_END_TOKEN)
            yaml_token_delete(&token);
    } while (token.type != YAML_STREAM_END_TOKEN);

    yaml_token_delete(&token);
    yaml_parser_delete(&parser);
    fclose(fh);
    return 0;
}

Предположим, у вас есть файл config.yaml со следующим содержимым:

server:
  host: localhost
  port: 8080

При выполнении приведенного выше кода программа выведет ключи и значения из YAML-файла. Для компиляции этого кода используйте следующую команду:

gcc -o yaml_parser yaml_parser.c -lyaml

Преимущества использования libyaml

Библиотека libyaml выделяется среди аналогов благодаря ряду преимуществ:

  • Скорость работы: Реализация на языке C обеспечивает минимальные накладные расходы и высокую производительность даже при обработке больших YAML-документов.
  • Компактность: Библиотека имеет небольшой размер, что делает её идеальной для встраивания в проекты с ограниченными ресурсами.
  • Сообщество и документация: libyaml активно поддерживается разработчиками, а также имеет подробную документацию и примеры использования.

Ограничения и особенности

Несмотря на свои преимущества, библиотека libyaml имеет некоторые ограничения, о которых важно знать:

  • Библиотека ориентирована на разработку на языке C, что может быть неудобно для проектов на других языках программирования (хотя существуют обертки для Python, Ruby и других языков).
  • Требуется базовое понимание работы с указателями и управлением памятью в C для корректного использования API.

Интеграция с другими инструментами

Библиотека libyaml часто используется как базовый компонент в других инструментах и языках программирования. Например, популярная библиотека PyYAML для Python основана на libyaml, что обеспечивает высокую скорость обработки YAML-данных в Python-приложениях. Также libyaml может быть интегрирована в проекты, использующие современные фреймворки для автоматизации и DevOps, где YAML является основным форматом конфигурационных файлов.

Заключительные рекомендации

Если вы ищете надежное решение для работы с форматом YAML в приложениях на языке C, пакет libyaml станет отличным выбором. Установите его с помощью пакетного менеджера dnf на Найс.ОС, изучите документацию и начните интегрировать библиотеку в свои проекты. Благодаря своей скорости, компактности и поддержке сообщества, libyaml поможет вам эффективно решать задачи, связанные с парсингом и генерацией YAML-данных.