Awesome
Lemmy-Swift-Client
A Swift client for Lemmy.
Features
- Fully Swift type safe
async
/await
compatible- Supports all Lemmy API endpoints
- Uses Codable for easy JSON serialization/deserialization
Installation
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.
Usage
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.
Contributing
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.
Resources
License
Lemmy Swift Client is available under the MIT license. See the LICENSE.
Code Formatting + Linting
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