Библиотеки ядра Swift
Проект Swift Core Libraries предоставляет функциональность более высокого уровня, чем стандартная библиотека Swift. Эти библиотеки обеспечивают мощные инструменты, на которые могут полагаться разработчики на всех платформах, поддерживаемых Swift. Библиотеки ядра стремятся предоставить стабильные и полезные функции в следующих ключевых областях:
- Часто используемые типы, включая данные, URL-адреса, наборы символов и специализированные коллекции
- Тестирование модулей
- Примитивы для работы с сетями
- Планирование и выполнение задач, включая потоки, очереди и уведомления
- Персистентность, включая списки свойств, архивы, парсинг JSON и XML
- Поддержка дат, времен и календарных расчётов
- Абстракция поведения, специфичного для операционной системы
- Взаимодействие с файловой системой
- Локализация, включая форматирование дат и чисел, а также языковые ресурсы
- Настройки пользователя
Статус проекта
Эти библиотеки являются частью нашей непрерывной работы по расширению кроссплатформенных возможностей Swift. Мы решили включить их в наш открытый релиз, чтобы мы могли работать над ними вместе с сообществом.
Написание кода, предоставляющего всю эту функциональность с нуля, было бы огромным предприятием. Поэтому мы решили запустить этот проект, используя уже проделанную хорошую работу в этих областях. В частности, мы будем повторно использовать API и столько реализации, сколько возможно, из трёх существующих библиотек: Foundation, libdispatch и XCTest.
Foundation
Фреймворк Foundation определяет базовый уровень функциональности, необходимый для практически всех приложений. Он предоставляет примитивные классы и вводит несколько парадигм, определяющих функциональность, не предоставляемую языком или средой выполнения. Он разработан с учётом этих целей:
- Предоставление небольшого набора основных утилитных классов.
- Упрощение разработки программного обеспечения за счёт введения согласованных конвенций.
- Поддержка интернационализации и локализации для обеспечения доступности программного обеспечения для пользователей по всему миру.
- Предоставление уровня независимости от ОС для повышения переносимости.
Дополнительную информацию о фреймворке Foundation в целом можно найти в документации Apple. Версия Foundation на Swift.org использует многие из тех же базовых библиотек (например, ICU и CoreFoundation), что и реализация Apple, но была построена для полной независимости от среды выполнения Objective-C. Из-за этого это существенная повторная реализация того же API с использованием чистого Swift-кода, наложенного поверх этих общих базовых библиотек. Более подробную информацию об этой работе можно найти на нашей странице проекта на GitHub.
libdispatch
Grand Central Dispatch (GCD или libdispatch) предоставляет исчерпывающую поддержку выполнения конкурирующего кода на многоядерном оборудовании.
libdispatch в настоящее время доступен на всех платформах Darwin. Этот проект направлен на то, чтобы сделать современную версию libdispatch доступной на всех других платформах Swift. Для этого мы будем реализовывать как можно большую часть переносимой подмножества API, используя существующую открытую исходную реализацию C.
Дополнительную информацию о libdispatch для Linux можно найти на нашей странице проекта на GitHub.
XCTest
Библиотека XCTest предназначена для предоставления общего фреймворка для написания модульных тестов в Swift для пакетов и приложений Swift.
Эта версия XCTest использует тот же API, что и XCTest, с которым вы знакомы из Xcode. Наша цель — позволить тестам вашего проекта работать на всех платформах Swift без необходимости их переписывания.
Более подробную информацию о XCTest на Linux можно найти на нашей странице проекта на GitHub.
Как указано выше, этот проект находится на ранней стадии. Мы с нетерпением ждем сотрудничества с сообществом для создания отличного набора библиотек, которые позволят Swift создавать мощное программное обеспечение на разных платформах.
The Swift Programming Language, Copyright © 2014-2025 Apple Inc.
Swift and the Swift logo are trademarks of Apple Inc.
Documentation for Swift 6.0.3
https://www.swift.org/documentation/core-libraries/