Expand description
Input validation for AT Protocol handles and DIDs.
This module provides comprehensive validation functions for various identifier formats used in the AT Protocol ecosystem. All validation follows established standards including RFC 1035 for hostnames and AT Protocol specifications for handle and DID formats.
§Main Functions
§Handle Validation
is_valid_handle- Validates and normalizes AT Protocol handlesstrip_handle_prefixes- Removes common handle prefixes (@,at://)
§DID Validation
is_valid_did_method_plc- Validates PLC DIDs (did:plc:...)is_valid_did_method_web- Validates Web DIDs (did:web:...)is_valid_did_method_webvh- Validates WebVH DIDs (did:webvh:...)
§Network Address Validation
is_valid_hostname- RFC 1035 compliant hostname validationis_ipv4- IPv4 address validationis_ipv6- IPv6 address validation
§Utility Functions
is_valid_base58_btc- Base58-btc alphabet character validation
§Examples
use atproto_identity::validation::*;
// Handle validation
assert_eq!(is_valid_handle("@alice.bsky.social"), Some("alice.bsky.social".to_string()));
// DID validation
assert!(is_valid_did_method_plc("did:plc:z3f2222fa222f5c33c2f27ez"));
assert!(is_valid_did_method_web("did:web:example.com", true));
assert!(is_valid_did_method_webvh("did:webvh:abc123:example.com", true));
// Network validation
assert!(is_valid_hostname("example.com"));
assert!(is_ipv4("192.168.1.1"));
assert!(is_ipv6("2001:db8::1"));Functions§
- is_ipv4
- Checks if a string is a valid IPv4 address.
- is_ipv6
- Checks if a string is a valid IPv6 address.
- is_
valid_ base58_ btc - Checks if a string contains only base58-btc alphabet characters.
- is_
valid_ did_ method_ plc - Validates if a string is a properly formatted PLC DID.
- is_
valid_ did_ method_ web - Validates if a string is a properly formatted Web DID.
- is_
valid_ did_ method_ webvh - Validates if a string is a properly formatted WebVH DID.
- is_
valid_ handle - Validates and normalizes an AT Protocol handle.
- is_
valid_ hostname - Validates if a string is a valid hostname according to RFC 1035.
- strip_
handle_ prefixes - Strips common AT Protocol handle prefixes from a handle string.