# Реестр {#registry} С ростом числа зависимостей увеличивается и время на их устранение. В то время как другие менеджеры пакетов, такие как [CocoaPods](https://cocoapods.org/) или [npm](https://www.npmjs.com/), являются централизованными, менеджер пакетов Swift таковым не является. Из-за этого SwiftPM приходится разрешать зависимости путем глубокого клонирования каждого репозитория, что может занимать больше времени и памяти, чем при централизованном подходе. Чтобы решить эту проблему, Tuist предоставляет реализацию [Package Registry](https://github.com/swiftlang/swift-package-manager/blob/main/Documentation/PackageRegistry/PackageRegistryUsage.md), чтобы вы могли загружать только те коммиты, которые вам _действительно нужны_. Пакеты в реестре основаны на [Swift Package Index](https://swiftpackageindex.com/) - если вы можете найти пакет там, то он также доступен в реестре Tuist. Кроме того, пакеты распределены по всему миру с использованием пограничного хранилища для минимальной задержки при их разрешении. ## Использование {#usage} Чтобы настроить реестр, выполните следующую команду в каталоге вашего проекта: ```bash tuist registry setup ``` Эта команда генерирует файл конфигурации реестра, который включает реестр для вашего проекта. Убедитесь, что этот файл зафиксирован, чтобы ваша команда также могла воспользоваться преимуществами реестра. ### Аутентификация (необязательно) {#authentication} Аутентификация **является необязательной**. Без аутентификации вы можете использовать реестр с ограничением скорости **1 000 запросов в минуту** на один IP-адрес. Чтобы получить более высокий предел скорости **20 000 запросов в минуту**, можно пройти аутентификацию, выполнив команду: ```bash tuist registry login ``` ::: info Для аутентификации требуется учетная запись Tuist и проект. ::: ### Разрешение зависимостей {#resolving-dependencies} Чтобы разрешить зависимости из реестра, а не из контроля исходных текстов, продолжайте читать в зависимости от настроек вашего проекта: - Проект Xcode - Сгенерированный проект с интеграцией пакета Xcode - Сгенерированный проект с интеграцией пакетов на основе XcodeProj - Пакет Swift Чтобы настроить реестр в CI, следуйте этому руководству: Непрерывная интеграция. ### Идентификаторы реестра пакетов {#package-registry-identifiers} При использовании идентификаторов реестра пакетов в файле `Package.swift` или `Project.swift` необходимо преобразовать URL-адрес пакета к соглашению реестра. Идентификатор реестра всегда имеет вид `{organization}.{repository}`. Например, чтобы использовать реестр для пакета `https://github.com/pointfreeco/swift-composable-architecture`, идентификатор реестра пакета будет `pointfreeco.swift-composable-architecture`. ::: info Идентификатор не может содержать более одной точки. Если имя репозитория содержит точку, она заменяется знаком подчеркивания. Например, пакет `https://github.com/groue/GRDB.swift` будет иметь идентификатор реестра `groue.GRDB_swift`. :::