···55The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7788+## v3.0.0 - Unreleased
99+1010+### Changed
1111+1212+- [possum] Functions now take the PDS host as an argument.
1313+- [possum] Most functions now create a new request internally when being called,
1414+ there's no need to pipe `request.new()` into them.
1515+816## v2.1.0 - 2026-07-12
9171018### Added
···11name = "possum"
22-version = "2.1.0"
22+version = "3.0.0"
3344-description = "๐ ATproto library for gleam"
44+description = "๐ ATproto library for gleam"
55licences = ["Apache-2.0"]
66repository = { type = "tangled", user = "kacaii.dev", repo = "possum" }
77
+1-2
pages/accessing-your-pds.md
···1313let assert Ok(did) = did.parse("did:plc:z72i7hdynmk6r22z27h6tvur")
14141515// Send a request to plc.directory
1616-request.new()
1717-|> possum.get_plc_data(did)
1616+let request = possum.get_plc_data(did)
18171918// You can use a decoder like this for your PDS endpoint
2019let decoder =
+5-7
pages/consulting-your-did.md
···1717don't usually need to implement resolution directly themselves.
18181919```gleam
2020-let assert Ok(handle) = handle.parse("gleam.run")
2121-2220// You can consult your identifier by sending a request directly to your PDS,
2321// or you can use projects like [Slingshot](https://slingshot.microcosm.blue)
2422// for easy access to cached data when resolving a handle.
2525-request.new()
2626-|> request.set_host("slingshot.microcosm.blue")
2727-|> possum.resolve_handle(handle)
2323+let assert Ok(handle) = handle.parse("gleam.run")
2424+let request = possum.resolve_handle(handle, pds: "slingshot.microcosm.blue")
2825```
29263027## HTTPS well-known Method
···3431status (2xx) and include the DID as the HTTP body with no prefix or wrapper formatting.
35323633```gleam
3434+import possum
3535+3736// You also verify your DID without DNS by sending a request to `/.well-know/atproto-did`
3837// Your server can then respond with the DID value as plain text.
3938//
4039// The response Content-Type header does not need to be strictly verified.
4141-request.new()
4242-|> possum.resolve_well_known_did("gleam.run")
4040+let request = possum.resolve_well_known_did(host: "gleam.run")
4341```