ada

Высокопроизводительная библиотека для парсинга и валидации URL, написанная на современном C++. Библиотека обеспечивает полное соответствие стандарту WHATWG URL и демонстрирует исключительную производительность, превосходя многие существующие решения. Разработанная с акцентом на скорость и надежность, Ada оптимально подходит для задач, требующих интенсивной обработки URL в высоконагруженных системах.

Особенности

  • полное соответствие стандарту WHATWG URL;
  • исключительная производительность парсинга;
  • минимальные зависимости и простота интеграции;
  • безопасная обработка международных доменных имен (IDN);
  • поддержка всех современных протоколов и схем URL.

Основные компоненты

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

Базовый парсинг URL

Основной функционал библиотеки сосредоточен вокруг класса ada::url, который представляет разобранный URL. Каждый экземпляр содержит все компоненты URL, разложенные в соответствии со стандартом WHATWG.

Ключевые функции парсинга:

  • ada::parse() — основной метод для разбора строки URL с возвратом результата в виде ada::url;
  • ada::can_parse() — быстрая проверка возможности корректного разбора URL;
  • ada::parse_url() — альтернативный интерфейс для парсинга с дополнительными опциями.

Валидация и нормализация

Библиотека включает комплексные механизмы валидации, обеспечивающие корректность обрабатываемых URL. Все функции проверки реализованы с учетом последних требований стандартов безопасности.

Функции валидации:

  • ada::is_valid() — проверка корректности разобранного URL;
  • ada::idna::to_ascii() — преобразование Unicode-доменов в ASCII (IDN-поддержка);
  • автоматическая нормализация процент-кодирования и регистра символов.

Манипуляции с компонентами URL

ada::url предоставляет набор методов для доступа и модификации отдельных компонентов URL с гарантией сохранения корректности итоговой строки.

Доступные компоненты:

  • get_href() — получение полной строки URL;
  • get_origin() — извлечение origin (схема, хост, порт);
  • get_protocol(), set_protocol() — доступ к схеме URL;
  • get_hostname(), set_hostname() — работа с доменным именем;
  • get_pathname(), set_pathname() — управление путем;
  • get_search(), set_search() — доступ к query-строке;
  • get_hash(), set_hash() — работа с фрагментом.

Сериализация и преобразования

Библиотека обеспечивает эффективное преобразование между разобранным представлением URL и строковым форматом с поддержкой различных опций сериализации.

Методы сериализации:

  • автоматическое приведение к строке при использовании в строковом контексте;
  • to_string() — явное преобразование в строку с нормализацией;
  • get_components() — получение отдельных компонентов в виде строк.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "ada/3.0.1@aurora",
    )    

Процесс локальной сборки описан в документации.

ada

Ada is a fast and spec-compliant URL parser written in C++.
Лицензия
Apache License 2.0
Версия
Автор
Daniil Markevich <d.markevich@omp.ru>
Домашняя страница
Скачать
armv7
273.73 Kb
MD5: bc10baf5f2ee38155432c37834bf8da6
Updated: 04.09.2025, 08:55:30
armv8
281.54 Kb
MD5: 634b679f79d5f6a0df4b100335b18555
Updated: 04.09.2025, 08:55:19
x86_64
294.05 Kb
MD5: 5458c0f4d7e2037b4beb24590dc55eff
Updated: 04.09.2025, 08:55:32
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.