#validation #ip-address

no-std email_address_validator

A simple email address parsing library

3 unstable releases

new 0.2.1 Apr 5, 2026
0.2.0 Mar 1, 2026
0.1.0 Feb 26, 2026

#161 in Email

MPL-2.0 license

91KB
2K SLoC

Email Address Validator

A email address validator is a tool that checks whether a given string is a valid email address according to the standard email address format. This is useful for validating user input in applications that require email addresses, such as registration forms or contact forms.

Getting Started

cargo add email_address_validator

Working with this crate

use email_address_validator::{
    Domain, DomainValidationOptionsBuilder, EmailAddress, EmailParseError,
    ValidationOptionsBuilder
};

fn main() -> Result<(), EmailParseError> {
    let email = EmailAddress::try_parse(
        "Testing User <test.user@example.com>",
        &ValidationOptionsBuilder::new().build()
    )?;

    // Prints Parsed Email: Testing User <test.user@example.com>
    println!("Parsed Email: {}", email);

    // Prints Local Part: test.user
    println!("Local Part: {}", email.local_part());

    // Prints Domain Part: example.com
    println!("Domain Part: {}", email.domain());

    let domain = Domain::try_parse(
        "[1234:5678:9abc:def0:1234:5678:9abc:def0]",
        &DomainValidationOptionsBuilder::new().build()
    )?;

    // Prints Domain: [1234:5678:9abc:def0:1234:5678:9abc:def0]
    println!("Domain: {}", domain.address());

    // Prints Domain Type: IpAddress
    println!("Domain Type: {}", domain.domain_type());

    Ok(())
}

Dependencies

~120–560KB
~13K SLoC