Библиотека выполнения Phobos
Phobos — это стандартная библиотека выполнения, поставляемая с компилятором языка D.
В целом, пространство имён std используется для основных модулей в стандартной библиотеке Phobos. Пространство имён etc используется для привязки внешних библиотек C/C++. Пространство имён core используется для функций выполнения D низкого уровня.
Следующая таблица — это справочное руководство по тому, какие модули Phobos следует использовать для заданной категории функциональности. Обратите внимание, что некоторые модули могут появляться в более чем одной категории, так как некоторые модули Phobos довольно универсальны и могут применяться в самых разных ситуациях.
| Модули | Описание |
|---|---|
| Алгоритмы и диапазоны | |
std.algorithmstd.rangestd.range.primitivesstd.range.interfaces | Универсальные алгоритмы, работающие с диапазонами любого типа, включая строки, массивы и другие типы последовательно доступных данных. Алгоритмы включают поиск, сравнение, итерацию, сортировку, операции над множествами и изменение. |
| Обработка массивов | |
std.arraystd.algorithm | Удобные операции, обычно используемые с встроенными массивами. Обратите внимание, что многие общие операции с массивами являются подмножеством более универсальных алгоритмов, работающих с произвольными диапазонами, поэтому они находятся в std.algorithm. |
| Контейнеры | |
std.container.arraystd.container.binaryheapstd.container.dliststd.container.rbtreestd.container.slist | См. std.container.* для обзора. |
| Форматы данных | |
std.base64 | Кодирование/декодирование формата Base64. |
std.csv | Чтение значений, разделенных запятыми (CSV) и его вариантов из входного диапазона dchar. |
std.json | Чтение/запись данных в формате JSON. |
std.xml | Чтение/запись данных в формате XML. |
std.zip | Чтение/запись данных в формате архива ZIP. |
std.zlib | Сжатие/распаковка данных с использованием библиотеки zlib. |
| Целостность данных | |
std.experimental.checkedint | Типы целых чисел с проверкой. |
std.digest | Вычисление хэшей, таких как md5, sha1 и crc32. |
std.digest.crc | Реализация циклической избыточной проверки (32 бита). |
std.digest.hmac | Вычисление хэшей HMAC произвольных данных. |
std.digest.md | Вычисление хэша MD5 произвольных данных. |
std.digest.murmurhash | Вычисление хэша MurmurHash произвольных данных. |
std.digest.ripemd | Вычисление хэша RIPEMD-160 произвольных данных. |
std.digest.sha | Вычисление хэшей SHA1 и SHA2 произвольных данных. |
| Дата и время | |
std.datetime | Предоставляет удобный доступ к представлениям даты и времени. |
core.time | Реализует низкоуровневые примитивы времени. |
| Обработка исключений | |
std.exception | Реализует функции, связанные с исключениями. |
core.exception | Определяет встроенные типы исключений и низкоуровневые языковые крючки, необходимые компилятору. |
| Связывание с внешними библиотеками | |
etc.c.curl | Интерфейс к библиотеке libcurl C. |
etc.c.odbc.sql | Интерфейс к библиотеке ODBC C. |
etc.c.odbc.sqlext | |
etc.c.odbc.sqltypes | |
etc.c.odbc.sqlucode | |
etc.c.sqlite3 | Интерфейс к библиотеке SQLite C. |
etc.c.zlib | Интерфейс к библиотеке zlib C. |
| Ввод/вывод и файловая система | |
std.file | Работа с файлами и каталогами. |
std.path | Работа со строками, представляющими пути к файлам в файловой системе. |
std.stdio | Производить буферизованный ввод/вывод. |
| Взаимодействие | |
core.stdc.complexcore.stdc.ctypecore.stdc.errnocore.stdc.fenvcore.stdc.float_core.stdc.inttypescore.stdc.limitscore.stdc.localecore.stdc.mathcore.stdc.signalcore.stdc.stdargcore.stdc.stddefcore.stdc.stdintcore.stdc.stdiocore.stdc.stdlibcore.stdc.stringcore.stdc.tgmathcore.stdc.timecore.stdc.wchar_core.stdc.wctype | Связывание D с стандартными заголовочными файлами C. Они в основном не документированы, так как документацию по функциям, для которых эти объявления предоставляют связи, можно найти во внешних источниках. |
| Управление памятью | |
core.memory | Управление встроенным сборщиком мусора. |
std.typecons | Создание облачных переменных и ссылочных типов с подсчетом ссылок. |
| Метапрограммирование | |
core.attribute | Определения специальных атрибутов, распознаваемых компилятором. |
core.demangle | Преобразование идентификаторов символов D в исходное представление. |
std.demangle | Простая обертка над core.demangle. |
std.meta | Создание и обработка списков аргументов шаблонов (также списки типов). |
std.traits | Извлечение информации о типах и символах во время компиляции. |
std.typecons | Создание новых, полезных типов общего назначения. |
| Многозадачность | |
std.concurrency | Низкоуровневый API обмена сообщениями для потоков. |
std.parallelism | Высокоуровневые примитивы для SMP-параллелизма. |
std.process | Запуск и управление процессами. |
core.atomic | Базовая поддержка программирования без блокировок для параллельных операций. |
core.sync.barrier | Синхронизация прогресса группы потоков. |
core.sync.condition | Синхронизированная проверка условия. |
core.sync.exception | Базовый класс для исключений синхронизации. |
core.sync.mutex | Мьютекс для взаимного исключения доступа. |
core.sync.rwmutex | Разделенный доступ для чтения и взаимное исключение доступа для записи. |
core.sync.semaphore | Семафор общего назначения для синхронизации. |
core.thread | Создание и управление потоками. |
| Сети | |
std.socket | Примитивы сокетов. |
std.net.curl | Функциональность сетевого клиента, предоставляемая libcurl. |
std.net.isemail | Проверка адреса электронной почты в соответствии с RFC 5321, 5322 и другими. |
std.uri | Кодирование и декодирование универсальных идентификаторов ресурсов (URI). |
std.uuid | Универсально-уникальные идентификаторы для ресурсов в распределенных системах. |
| Числа | |
std.bigint | Тип целых чисел произвольной точности. |
std.complex | Тип комплексных чисел. |
std.math | Элементарные математические функции (степени, корни, тригонометрия). |
std.mathspecial | Семейства трансцендентных функций. |
std.numeric | Функции чисел с плавающей запятой. |
std.random | Генераторы псевдослучайных чисел. |
core.checkedint | Примитивы целочисленной арифметики с проверкой диапазона. |
core.math | Встроенные математические инструкции. |
| Парадигмы | |
std.functional | Функции, которые манипулируют другими функциями. |
std.algorithm | Универсальные алгоритмы для обработки последовательностей. |
std.signals | Структура «сигнал-слот» для событийно-ориентированного программирования. |
| Утилиты времени выполнения | |
object | Базовые определения языка. Автоматически импортируется. |
std.getopt | Разбор аргументов командной строки. |
std.compiler | Производитель компилятора и версия языка хост-компилятора. |
std.system | Среда выполнения, например, тип ОС и порядок байтов. |
core.cpuid | Возможности процессора, на котором выполняется программа. |
core.memory | Управление встроенным сборщиком мусора. |
core.runtime | Управление и настройка среды выполнения D. |
| Обработка строк | |
std.string | Алгоритмы, работающие специально со строками. |
std.array | Работа с встроенными массивами. |
std.algorithm | Общие алгоритмы для обработки последовательностей. |
std.uni | Основные алгоритмы и структуры данных Unicode. |
std.utf | Кодирование и декодирование строк UTF-8, UTF-16 и UTF-32. |
std.format | Форматирование данных в строки. |
std.path | Работа со строками, представляющими пути к файлам. |
std.regex | Регулярные выражения. |
std.ascii | Функции, специфичные для подмножества ASCII Unicode. |
std.encoding | Обработка и преобразование между различными кодировками текста. |
std.windows.charset | Поддержка наборов символов, специфичных для Windows. |
std.outbuffer | Сериализация данных в массивы ubyte. |
| Манипуляции с типами | |
std.conv | Преобразование типов из одного типа в другой. |
std.typecons | Конструкторы типов для ограниченных переменных, ссылок с подсчетом ссылок и т. д. |
std.bitmanip | Манипуляции на уровне бит высокого уровня, битовые массивы, битовые поля. |
std.variant | Дискриминированные союзы и алгебраические типы. |
core.bitop | Манипуляции на уровне бит низкого уровня. |
| Программирование векторов | |
core.simd | Встроенные функции SIMD |
© 1999–2021 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/index.html