swift-atproto is a atproto library.
Add the SwiftAtproto as a dependency:
let package = Package(
// name, platforms, products, etc.
dependencies: [
// other dependencies
.package(url: "https://github.com/nnabeyang/swift-atproto", from: "0.37.0"),
],
targets: [
.executableTarget(name: "<executable-target-name>", dependencies: [
// other dependencies
.product(name: "SwiftAtproto", package: "swift-atproto"),
]),
// other targets
]
)Add the following to your Podfile:
pod 'SwiftAtproto'
Code generation is done as follows:
swift package plugin --allow-writing-to-package-directory \
--allow-network-connections all:443 swift-atproto --outdir <OUTPUT_DIR> --atproto-configuration ./.atproto.jsonSample configuration file is as follows. You can specify whether to generate client code, server code, or both using the generate field (defaults to ["client"]).
{
"generate": ["client", "server"],
"dependencies": [
{
"location": "https://github.com/bluesky-social/atproto.git",
"lexicons": [
{
"prefix": "app.bsky",
"path": "lexicons/app/bsky",
"nsIds": [
"app.bsky.actor.defs",
"app.bsky.embed.defs",
"app.bsky.embed.external",
"app.bsky.embed.images",
"app.bsky.embed.record",
"app.bsky.embed.recordWithMedia",
"app.bsky.embed.video",
"app.bsky.feed.defs",
"app.bsky.feed.getPosts",
"app.bsky.graph.defs",
"app.bsky.feed.threadgate",
"app.bsky.labeler.defs",
"app.bsky.richtext.facet",
"app.bsky.feed.postgate",
"app.bsky.notification.defs"
]
},
{
"prefix": "com.atproto",
"path": "lexicons/com/atproto",
"nsIds": [
"com.atproto.label.defs",
"com.atproto.moderation.defs",
"com.atproto.repo.strongRef"
]
}
],
"state": {
"tag": "@atproto/api@0.19.3"
}
}
],
"module": "Sources/Lexicon"
}swift-atproto is published under the MIT License, see LICENSE.
