A Swift client for Lemmy.
- Fully Swift type safe
async
/await
compatible- Supports all Lemmy API endpoints
- Uses Codable for easy JSON serialization/deserialization
We use Swift Package Manager to make it easy to install and use the Lemmy Swift Client in your project.
dependencies: [
.package(url: "https://github.com/rrainn/Lemmy-Swift-Client.git", .exact("3.0.0"))
]
Please note, that we do not subscribe to SemVer versioning at this time due to the massive amount of Lemmy API changes. Please consider pinning Lemmy-Swift-Client to a specific version at this time.
Below is an example of a basic usage example of how to use the Lemmy Swift Client.
import Lemmy_Swift_Client
if let url = URL(string: "https://eventfrontier.com/api/v3") {
// Create an instance of the Lemmy API with the base URL of your Lemmy instance
let api = LemmyAPI(baseUrl: url)
// Create a SearchRequest object with the `q` parameter
let request = SearchRequest(q: "Lemmy-Swift-Client")
// Send the request to the Lemmy API
if let response = try? await api.request(request) {
print(response)
} else {
print("Error")
}
}
Luckily this just scratches the surface of what you can do with the Lemmy Swift Client. For more information checkout our documentation.
All of the Sources/Lemmy-Swift-Client/Lemmy API
files are autogenerated. Please do not edit these files directly. You can view the auto-generation code in the autogen
directory.
Lemmy Swift Client is available under the MIT license. See the LICENSE.
This project uses swiftformat for code formatting and linting.
Please make sure to lint your code before submitting a Pull Request.
If you do not have swiftformat
installed, you can install it with Homebrew:
brew install swiftformat
The repository provides simple Makefile
targets to run either:
# Lint (will not apply changes)
make lint
# Lint and apply correct formatting
make lint-fix