diff --git a/Cargo.lock b/Cargo.lock
index 9858340..6e953ba 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -191,9 +191,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
[[package]]
name = "atproto-client"
-version = "0.9.6"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e26a266e571fd9cb401f47a2183ee2a1376e5dbd28b453aa3f5d2b6aa8e2f9b"
+checksum = "b8b3d9628afd1e4a79e9701089aced14c2519c12f4f8b27f4a6e72bb3eb29e66"
dependencies = [
"anyhow",
"atproto-identity",
@@ -213,17 +213,15 @@ dependencies = [
[[package]]
name = "atproto-identity"
-version = "0.9.6"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8eafb629927bd1e4f336edfd6a86e525d72851b7efbf173eb5f1e35a4395e95"
+checksum = "0091aac30b30c70507c865d3b09053178a746f474742eba7f25377086d13bcba"
dependencies = [
"anyhow",
"async-trait",
- "axum 0.8.4",
"ecdsa",
"elliptic-curve",
"hickory-resolver",
- "http 1.3.1",
"k256",
"lru",
"multibase",
@@ -242,19 +240,17 @@ dependencies = [
[[package]]
name = "atproto-oauth"
-version = "0.9.6"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa4d911a2eb8bf626fc7c2857fc3d31e1392278e53fc05642824894844a7f37f"
+checksum = "58743096f464928c76b5e8ed73b4218345c66723629dc623cb93662cc8ecd4e6"
dependencies = [
"anyhow",
"async-trait",
"atproto-identity",
- "axum 0.8.4",
"base64",
"chrono",
"ecdsa",
"elliptic-curve",
- "http 1.3.1",
"k256",
"lru",
"multibase",
@@ -277,9 +273,9 @@ dependencies = [
[[package]]
name = "atproto-oauth-axum"
-version = "0.9.6"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb8319c89de868b647fdf5e2b077e81bd0dcff54c49dd1b9798c5d296ba102aa"
+checksum = "ea053c73ad9c19ea63a355193833728a61156744d129e72a62d4ffe361133bb1"
dependencies = [
"anyhow",
"async-trait",
@@ -300,36 +296,30 @@ dependencies = [
"thiserror 2.0.12",
"tokio",
"tracing",
- "urlencoding",
"zeroize",
]
[[package]]
name = "atproto-record"
-version = "0.9.6"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "640a09da90a3460a60ff85e26ab70735a3ec20ea3b3d28a37278d93ebe0901dd"
+checksum = "66191a5512ebfa103e72ddbc3b96d4d5afd58e22dbcadf4cc7d5ea431c1cb31e"
dependencies = [
"anyhow",
"atproto-identity",
+ "base64",
"chrono",
- "ecdsa",
- "k256",
- "multibase",
- "p256",
"serde",
"serde_ipld_dagcbor",
"serde_json",
"thiserror 2.0.12",
- "tokio",
- "tracing",
]
[[package]]
name = "atproto-xrpcs"
-version = "0.9.6"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a5127ae4366cf58a717a2e2ec263f5650b33ea0f63968b04d5f7d5b22a1399"
+checksum = "12c18b713888b1af7027770db1815d7508ed4bd666a4bf5e96515915d8ea3654"
dependencies = [
"anyhow",
"async-trait",
@@ -351,7 +341,6 @@ dependencies = [
"thiserror 2.0.12",
"tokio",
"tracing",
- "urlencoding",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 182181c..0fcc624 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -2,7 +2,7 @@
name = "aip"
version = "0.1.0"
edition = "2024"
-rust-version = "1.87"
+rust-version = "1.89"
[[bin]]
name = "aip"
@@ -18,11 +18,12 @@ path = "src/lib.rs"
[dependencies]
axum = { version = "0.8" }
-atproto-client = { version = "0.9.6" }
-atproto-identity = { version = "0.9.6", features = ["zeroize"] }
-atproto-oauth = { version = "0.9.6", features = ["zeroize"] }
-atproto-oauth-axum = { version = "0.9.6", features = ["zeroize"] }
-atproto-xrpcs = { version = "0.9.6" }
+
+atproto-identity = { version = "0.11.0", features = ["lru", "zeroize", "hickory-dns"] }
+atproto-oauth = { version = "0.11.0", features = ["lru", "zeroize", "hickory-dns"] }
+atproto-oauth-axum = { version = "0.11.0", features = ["zeroize"] }
+atproto-client = { version = "0.11.0" }
+atproto-xrpcs = { version = "0.11.0", features = ["hickory-dns"] }
axum-template = { version = "3.0", features = ["minijinja"] }
minijinja = { version = "2.7", features = ["builtins"] }
diff --git a/Dockerfile b/Dockerfile
index 296f6a5..fbe4acb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,5 @@
# Build stage
-FROM rust:1.87-slim AS builder
+FROM rust:1.89-slim AS builder
# Install required system dependencies for building
RUN apt-get update && apt-get install -y \
diff --git a/src/bin/aip.rs b/src/bin/aip.rs
index d8d0c60..43f5000 100644
--- a/src/bin/aip.rs
+++ b/src/bin/aip.rs
@@ -20,7 +20,7 @@ use aip::{
};
use anyhow::Result;
use atproto_identity::{
- resolve::{IdentityResolver, InnerIdentityResolver, create_resolver},
+ resolve::{HickoryDnsResolver, InnerIdentityResolver, SharedIdentityResolver},
storage::DidDocumentStorage,
storage_lru::LruDidDocumentStorage,
};
@@ -122,10 +122,12 @@ async fn main() -> Result<()> {
};
// Initialize the DNS resolver
- let dns_resolver = create_resolver(config.dns_nameservers.as_ref());
+ let dns_resolver = Arc::new(HickoryDnsResolver::create_resolver(
+ config.dns_nameservers.as_ref(),
+ ));
// Initialize the identity resolver
- let identity_resolver = IdentityResolver(Arc::new(InnerIdentityResolver {
+ let identity_resolver = SharedIdentityResolver(Arc::new(InnerIdentityResolver {
dns_resolver,
http_client: http_client.clone(),
plc_hostname: config.plc_hostname.clone(),
diff --git a/src/config.rs b/src/config.rs
index 6e9430d..7375d1d 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -1,7 +1,7 @@
//! Environment-based configuration types for AIP server runtime settings.
use anyhow::Result;
-use atproto_identity::key::{KeyData, KeyType, generate_key, identify_key};
+use atproto_identity::key::{KeyData, identify_key};
use std::time::Duration;
use crate::errors::ConfigError;
@@ -329,13 +329,15 @@ impl TryFrom