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: 23 days 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-11-12T00:23:00.000Z (about 2 months ago)
- Last Synced: 2024-12-09T16:55:58.782Z (30 days ago)
- Language: Swift
- Homepage: https://rrainn.github.io/Lemmy-Swift-Client/documentation/lemmy_swift_client/
- Size: 233 KB
- Stars: 46
- Watchers: 3
- Forks: 10
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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))