Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rrainn/Lemmy-Swift-Client
A Swift client for Lemmy.
https://github.com/rrainn/Lemmy-Swift-Client
Last synced: 2 months ago
JSON representation
A Swift client for Lemmy.
- Host: GitHub
- URL: https://github.com/rrainn/Lemmy-Swift-Client
- Owner: rrainn
- License: mit
- Created: 2023-06-11T19:33:41.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-03-23T21:08:59.000Z (10 months ago)
- Last Synced: 2024-04-24T17:27:41.631Z (9 months ago)
- Language: Swift
- Homepage: https://rrainn.github.io/Lemmy-Swift-Client/documentation/lemmy_swift_client/
- Size: 218 KB
- Stars: 42
- Watchers: 3
- Forks: 12
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-lemmy - Lemmy-Swift-Client - Swift-Client) ![GitHub commit activity](https://img.shields.io/github/commit-activity/y/rrainn/Lemmy-Swift-Client) (Projects / Libraries)
README
# Lemmy-Swift-Client
A Swift client for [Lemmy](https://join-lemmy.org).
## Features
- Fully Swift type safe
- `async`/`await` compatible
- Supports [all Lemmy API endpoints](https://join-lemmy.org/api/classes/LemmyHttp.html)
- 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.
```swift
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.
```swift
import Lemmy_Swift_Clientif 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](https://rrainn.github.io/Lemmy-Swift-Client/documentation/lemmy_swift_client/).
## 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
- [Documentation](https://rrainn.github.io/Lemmy-Swift-Client/documentation/lemmy_swift_client/)
- [Repository](https://github.com/rrainn/Lemmy-Swift-Client)
- [License](https://github.com/rrainn/Lemmy-Swift-Client/blob/main/LICENSE)## License
Lemmy Swift Client is available under the MIT license. See the [LICENSE](https://github.com/rrainn/Lemmy-Swift-Client/blob/main/LICENSE).
## Code Formatting + Linting
This project uses [swiftformat](https://github.com/nicklockwood/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](https://brew.sh):
```bash
brew install swiftformat
```The repository provides simple `Makefile` targets to run either:
```bash
# Lint (will not apply changes)
make lint# Lint and apply correct formatting
make lint-fix
```## Maintainers
- [Charlie Fish](https://charlie.fish) ([Contact](https://charlie.fish/contact))