ATResolve

1.1.0

AT Protocol PLC Resolver
ATProtoKit/ATResolve

What's New

v1.1.0

2026-03-13T17:03:15Z

What's Changed

  • Genericize ResponseProviding to an HTTPSRequester by @germ-mark in #4

Full Changelog: 1.0.0...1.0.1

Build Status Platforms Documentation Matrix

ATResolve

AT Protocol PLC/DID/Whatever Resolver

I just want to resolve a handle to a DID and PDS. There's more to do, but this is a start. This could be a good reference.

Integration

dependencies: [
    .package(url: "https://github.com/mattmassicotte/ATResolve", branch: "main")
]

Usage

import ATResolve

let resolver = ATResolver(provider: URLSession.shared)

let data = try await resolver.resolveHandle("massicotte.org")

print(data.did)
print(data.serviceEndpoint)

The ATResolver type also supports custom HTTP loading for compatibility with server frameworks that don't use URLSession.

struct CustomProvider: ResponseProviding {
    func decodeJSON<T>(at urlString: String, queryItems: [(String, String)]) async throws -> T where T : Decodable {
        // your custom code that loads and decodes JSON goes here
    }
}

let resolver = ATResolver(provider: CustomProvider())

Contributing and Collaboration

I would love to hear from you! Issues or pull requests work great. Both a Matrix space and Discord are available for live help, but I have a strong bias towards answering in the form of documentation. You can also find me on the web.

I prefer collaboration, and would love to find ways to work together if you have a similar project.

I prefer indentation with tabs for improved accessibility. But, I'd rather you use the system you want and make a PR than hesitate because of whitespace.

By participating in this project you agree to abide by the Contributor Code of Conduct.

Description

  • Swift Tools 6.0.0
View More Packages from this Author

Dependencies

Last updated: Mon Sep 07 2026 13:35:13 GMT-0900 (Hawaii-Aleutian Daylight Time)