Repolode
apple

apple/swift-collections

Swift-пакет с распространёнными структурами данных: двусторонними очередями, кучами, упорядоченными множествами и словарями, а также битовыми множествами.

Звёзды
4,547
Форки
436
Открытые issues
70
Последний коммит
20 часов назад

Что это?

Swift Collections — это Swift-пакет с реализациями структур данных, расширяющими типы стандартной библиотеки Array, Set и Dictionary. Пакет разделён на тематические модули: DequeModule для двусторонних очередей на основе кольцевого буфера, HeapModule для min-max-кучи, которую можно использовать как очередь с приоритетом, и OrderedCollections с типами OrderedSet и OrderedDictionary, сохраняющими порядок добавления элементов.

В других модулях представлены BitCollections (BitSet и BitArray для более компактного хранения данных на основе битов), HashTreeCollections (персистентные хешированные TreeSet и TreeDictionary на основе CHAMP-trie, которые используют общие неизменившиеся части в копиях) и BasicContainers (UniqueArray и RigidArray с учётом владения). Модуль Collections реэкспортирует основные стабильные типы, позволяя подключить их одним импортом.

Пакет придерживается семантического версионирования и требует актуальную версию Swift toolchain; минимальная версия указана для каждого релиза. Экспериментальные возможности, такие как SortedCollections, контейнеры с хешированием Robin Hood и предварительные версии протоколов контейнеров, доступны только при явном включении package traits и не входят в стабильный API.

Ключевые возможности

  • 01Типы Deque, heap, OrderedSet и OrderedDictionary для распространённых задач работы с коллекциями.
  • 02BitSet и BitArray для компактного хранения данных на основе битов.
  • 03Персистентные TreeSet и TreeDictionary, повторно использующие неизменившиеся части в копиях.
  • 04Один импорт Collections открывает доступ к основным стабильным типам.
  • 05Семантическое версионирование; минимальная версия Swift toolchain указана для каждого релиза.

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

  • Сохранять порядок добавления элементов в Swift-словаре или множестве без написания собственного кода.
  • Использовать очередь с приоритетом или двустороннюю очередь в серверном приложении или приложении на Swift.
  • Компактнее хранить большие наборы целых чисел или логических значений с помощью битовых типов.
  • Создавать общие неизменяемые снимки словаря для разных потоков или состояний с помощью персистентных деревьев.

Быстрый старт

  1. 1

    Добавьте swift-collections в Package.swift как зависимость пакета, следуя инструкциям в разделе использования README

Что важно знать

  • Экспериментальные возможности, доступные через package traits, нестабильны и могут быть изменены или удалены без предупреждения.
  • Требуется toolchain Swift, поэтому это полезно только для проектов на Swift.

Темы

#data-structures#collections#queue#heap#ordered-dictionary#bitset#hashing#collection#container#deque

Частые вопросы

Что такое swift-collections?
Swift-пакет с распространёнными структурами данных: двусторонними очередями, кучами, упорядоченными множествами и словарями, а также битовыми множествами. Swift Collections — это Swift-пакет с реализациями структур данных, расширяющими типы стандартной библиотеки Array, Set и Dictionary. Пакет разделён на тематические модули: DequeModule для двусторонних очередей на основе кольцевого буфера, HeapModule для min-max-кучи, которую можно использовать как очередь с приоритетом, и OrderedCollections с типами OrderedSet и OrderedDictionary, сохраняющими порядок добавления элементов.
swift-collections можно использовать бесплатно? Какая у него лицензия?
swift-collections распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
swift-collections всё ещё поддерживается?
Активно поддерживается. Последний коммит в swift-collections — 6 нояб. 2026 г..
Для чего можно использовать swift-collections?
Сохранять порядок добавления элементов в Swift-словаре или множестве без написания собственного кода. Использовать очередь с приоритетом или двустороннюю очередь в серверном приложении или приложении на Swift. Компактнее хранить большие наборы целых чисел или логических значений с помощью битовых типов. Создавать общие неизменяемые снимки словаря для разных потоков или состояний с помощью персистентных деревьев.
Как установить swift-collections?
Добавьте swift-collections в Package.swift как зависимость пакета, следуя инструкциям в разделе использования README
Где скачать swift-collections?
Исходный код и инструкции по установке — на GitHub: https://github.com/apple/swift-collections

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Основные Java-библиотеки Google: мультимапы, мультимножества, графы и утилиты для конкурентности, ввода-вывода, хеширования и строк.

51,9 тыс.+6 за неделю11,2 тыс.JavaApache-2.0Активно поддерживаетсяОбновлён 4 часа назад

Браузерное веб-приложение для шифрования, кодирования, сжатия, хеширования и анализа данных — его часто называют швейцарским армейским ножом для кибербезопасности.

36,3 тыс.+67 за неделю4,2 тыс.JavaScriptApache-2.0Активно поддерживаетсяОбновлён 20 часов назад