Об этом проекте
# Swift UUIDV7
Соответствующий RFC 9562 тип данных UUID v7 для Swift, обеспечивающий кроссплатформенную поддержку и интеграции с популярными библиотеками. В отличие от `UUID` из Foundation (обычно v4), `UUIDV7` встраивает временную метку в свои 48 наиболее значимых бит, что обеспечивает упорядоченность и лучшую локальность индекса для первичных ключей баз данных.
## Ключевые возможности
- **Упорядочивание по временной метке**: сортировка коллекций по `UUIDV7` как ключу сортировки.
- **Субмиллисекундная монотонность**: гарантирует монотонно возрастающие генерации в 100% случаев, даже если системные часы идут назад.
- **RawRepresentable**: использует `UUID` из Foundation в качестве своего сырого значения, с динамическим поиском членов для всех типичных свойств `UUID`.
- **Интеграции с библиотеками** через трейты пакета:
- `SwiftUUIDV7Tagged`: удобные инициализаторы для `Tagged`.
- `SwiftUUIDV7GRDB`: соответствия `DatabaseValueConvertible` и `StatementColumnConvertible`, а также функции базы данных.
- `SwiftUUIDV7StructuredQueries`: соответствие `QueryBindable` и представления столбцов.
- `SwiftUUIDV7Dependencies`: зависимость `UUIDV7Generator`.
- `SwiftUUIDV7SQLiteData`: совместимость синхронизации CloudKit через `IdentifierStringConvertible`.
- **AppIntents**: соответствует `EntityIdentifierConvertible` на платформах Apple.
## Установка
Добавьте как зависимость Swift Package Manager:
```swift
dependencies: [
.package(
url: "https://github.com/mhayes853/swift-uuidv7",
from: "0.6.1",
traits: ["SwiftUUIDV7GRDB"]
)
]
```
Или скопируйте `Sources/UUIDV7/UUIDV7.swift` напрямую в ваш проект.
## Лицензия
Лицензия MIT.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.