diff --git a/Metadata/domain-diagram.svg b/Metadata/domain-diagram.svg
deleted file mode 100644
index 726a4bd..0000000
--- a/Metadata/domain-diagram.svg
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
\ No newline at end of file
diff --git a/Metadata/domain-diagram.webp b/Metadata/domain-diagram.webp
new file mode 100644
index 0000000..fe59c72
Binary files /dev/null and b/Metadata/domain-diagram.webp differ
diff --git a/README.md b/README.md
index e99bc98..54a71bd 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
-[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg)](https://github.com/gumob/TLDExtractSwift)
-[![Version](http://img.shields.io/cocoapods/v/TLDExtract.svg)](http://cocoadocs.org/docsets/TLDExtract)
-[![Platform](http://img.shields.io/cocoapods/p/TLDExtract.svg)](http://cocoadocs.org/docsets/TLDExtract)
-[![Build Status](https://travis-ci.com/gumob/TLDExtractSwift.svg?branch=master)](https://travis-ci.com/gumob/TLDExtractSwift)
+[![Swift Package Manager compatible](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange)](https://github.com/gumob/TLDExtractSwift)
+[![Cocoapods Version](http://img.shields.io/cocoapods/v/TLDExtractSwift.svg)](http://cocoadocs.org/docsets/TLDExtract)
+[![Cocoapods Platform](http://img.shields.io/cocoapods/p/TLDExtractSwift.svg)](http://cocoadocs.org/docsets/TLDExtract)
+[![Build](https://github.com/gumob/TLDExtractSwift/actions/workflows/main.yml/badge.svg)](https://github.com/gumob/TLDExtractSwift/actions/workflows/main.yml)
[![codecov](https://codecov.io/gh/gumob/TLDExtractSwift/branch/master/graph/badge.svg)](https://codecov.io/gh/gumob/TLDExtractSwift)
-![Language](https://img.shields.io/badge/Language-Swift%204.2-orange.svg)
+![Language](https://img.shields.io/badge/Language-Swift%205.0-orange.svg)
![Packagist](https://img.shields.io/packagist/l/doctrine/orm.svg)
# TLDExtract
@@ -13,7 +13,26 @@
Domain names are the unique, human-readable Internet addresses of websites. They are made up of three parts: a top-level domain (a.k.a. TLD), a second-level domain name, and an optional subdomain.
-
+
+
+## Changes in 3.0.0
+
+### Breaking changes
+
+- ‼️ Library name changed from ~~`TLDExtract`~~ to **`TLDExtractSwift`** to resolve namespace conflicts. For more details, please check the issue ([apple/swift#56573](https://github.com/apple/swift/issues/56573)).
+
+ Please don't forget to update your source code.
+
+ ```diff
+ - import TLDExtract
+ + import TLDExtractSwift
+ ```
+
+### Other changes
+- Dropped support for Swift 4.
+- Added watchOS and visionOS to supported platforms.
+- Changed supported versions for macOS, iOS, and tvOS to match Xcode 15.4.
+
## Feature
@@ -24,23 +43,49 @@ Domain names are the unique, human-readable Internet addresses of websites. They
## Requirements
-- iOS 9.3 or later
-- macOS 10.12 or later
-- tvOS 10.2 or later
-- Swift 4.2 or later
-- Python 2.7 or Python 3
+- macOS 10.13 or later
+- iOS 12.0 or later
+- tvOS 12.0 or later
+- watchOS 4.0 or later
+- visionOS 1.0 or later
+- Swift 5.0 or later
## Installation
+### Swift Package Manager
+
+Add the following to your `Package.swift` file.
+
+- macOS, iOS, tvOS, watchOS, visionOS, and Swift 5
+ ```swift
+ dependencies: [
+ .package(url: "https://github.com/gumob/TLDExtractSwift.git", .upToNextMajor(from: "3.0.0"))
+ ]
+ ```
+
+- macOS, iOS, tvOS, and Swift 5
+ ```swift
+ dependencies: [
+ .package(url: "https://github.com/gumob/TLDExtractSwift.git", .upToNextMajor(from: "2.1.1"))
+ ]
+ ```
+
### Carthage
Add the following to your `Cartfile` and follow [these instructions](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application).
-```
-github "gumob/TLDExtractSwift" # Latest (Swift 5.0)
-github "gumob/TLDExtractSwift" ~> 2.0 # Swift 5.0
-github "gumob/TLDExtractSwift" ~> 1.0 # Swift 4.2
-```
+- macOS, iOS, tvOS, watchOS, visionOS, and Swift 5
+ ```
+ github "gumob/TLDExtractSwift" ~> 3.0
+ ```
+- macOS, iOS, tvOS, and Swift 5
+ ```
+ github "gumob/TLDExtractSwift" ~> 2.0
+ ```
+- macOS, iOS, tvOS, and Swift 4
+ ```
+ github "gumob/TLDExtractSwift" ~> 1.0
+ ```
Do not forget to include Punycode.framework. Otherwise it will fail to build the application.
@@ -50,14 +95,18 @@ Do not forget to include Punycode.framework. Otherwise it will fail to build the
To integrate TLDExtract into your project, add the following to your `Podfile`.
-```ruby
-platform :ios, '9.3'
-use_frameworks!
-
-pod 'TLDExtract' # Latest (Swift 5.0)
-pod 'TLDExtract', '~> 2.0' # Swift 5.0
-pod 'TLDExtract', '~> 1.0' # Swift 4.2
-```
+- macOS, iOS, tvOS, watchOS, visionOS, and Swift 5.0
+ ```ruby
+ pod 'TLDExtractSwift', '~> 3.0'
+ ```
+- macOS, iOS, tvOS, and Swift 5.0
+ ```ruby
+ pod 'TLDExtract', '~> 2.0'
+ ```
+- macOS, iOS, tvOS, and Swift 4.2
+ ```ruby
+ pod 'TLDExtract', '~> 1.0'
+ ```
## Usage
@@ -65,14 +114,14 @@ pod 'TLDExtract', '~> 1.0' # Swift 4.2
Basic initialization code. Exceptions will not be raised unless [the Public Suffix List on the server](https://publicsuffix.org/list/public_suffix_list.dat) is broken.
```swift
-import TLDExtract
+import TLDExtractSwift
let extractor = try! TLDExtract()
```
A safer initialization code to avoid errors by using the frozen Public Suffix List:
```swift
-import TLDExtract
+import TLDExtractSwift
let extractor = try! TLDExtract(useFrozenData: true)
```