Initial Release
Swift implementation of RFC 3986: Uniform Resource Identifier (URI) Generic Syntax
Features
- ✅ URI validation (ASCII-only per RFC 3986)
- ✅ URI normalization (scheme/host lowercasing, default port removal, path normalization)
- ✅ Component parsing (scheme, authority, path, query, fragment)
- ✅ Relative URI reference resolution (RFC 3986 Section 5)
- ✅ Percent-encoding/decoding utilities (RFC 3986 Section 2.1)
- ✅ Character set definitions (reserved, unreserved, etc.)
- ✅ HTTP/HTTPS specific validation
- ✅ Protocol-based design with `URI.Representable`
- ✅ Foundation `URL` conformance to `URI.Representable`
- ✅ Developer delight features (convenience APIs, operators, fluent chains)
- ✅ Swift 6 strict concurrency support
- ✅ Full `Sendable` conformance
- ✅ Cross-platform (macOS, iOS, tvOS, watchOS, Linux)
Requirements
- Swift 6.0+
- macOS 14+, iOS 17+, tvOS 17+, watchOS 10+, or Linux
Installation
```swift
dependencies: [
.package(url: "https://github.com/swift-web-standards/swift-rfc-3986", from: "0.1.0")
]
```
Documentation
See README for usage examples and API documentation.
Related Packages
- swift-rfc-3987 - Swift types for RFC 3987 (Internationalized Resource Identifiers)
- swift-rfc-4287 - Swift types for RFC 4287 (Atom Syndication Format)
- swift-atom - Atom feed generation and XML rendering