Skip to content

rrainn/Lemmy-Swift-Client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d0ca70d · Mar 23, 2024

History

58 Commits
Jul 2, 2023
Jun 11, 2023
Mar 23, 2024
Jul 2, 2023
Mar 23, 2024
Jul 9, 2023
Jul 2, 2023
Jul 3, 2023
Jul 2, 2023
Jun 12, 2023
Jul 2, 2023
Jul 9, 2023

Repository files navigation

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

Maintainers