Module validation

Source
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

§DID Validation

§Network Address Validation

§Utility Functions

§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.