dotcom 0.3.0

A powerful Rust-based developer toolkit for querying and analyzing domain names
dotcom-0.3.0 is not a library.

dotcom

A powerful Rust-based developer toolkit for querying and analyzing domain names. The dotcom toolkit provides flexible domain analysis capabilities, including availability checking, domain suggestions, monitoring, and comprehensive domain analysis.

Features

  • Domain Availability Check: Quickly check if domains are available
  • Domain Search: Generate domain suggestions based on keywords
  • Enhanced Dictionary Integration: Real English word validation with 200+ curated words
  • Domain Analysis: Analyze domain characteristics including:
    • Length and TLD analysis
    • Advanced English word detection using dictionary service
    • Pronounceability scoring
    • Dictionary-enhanced brandability and memorability scores
    • SEO potential assessment based on real word status
  • Dictionary Lookup: Standalone word validation and lookup functionality
  • Domain Monitoring: Track domain changes over time (planned)
  • Flexible Output: Support for multiple output formats
  • Extensible API: Easy to integrate with various domain registrars and WHOIS services

Installation

From Source

git clone https://github.com/alexnicita/dotcom.git
cd dotcom
cargo build --release

Prerequisites

  • Rust 1.75+ (with Cargo)
  • Internet connection for API calls

Usage

Basic Commands

Check Domain Availability

# Check if a domain is available
dotcom check example.com

# Check with detailed information
dotcom check example.com --verbose

Search for Domains

# Search for domains with keywords
dotcom search startup tech

# Search with specific TLDs
dotcom search startup --tld com,net,org

# Limit results and show only available domains
dotcom search startup --limit 5 --available-only

Analyze Domain Characteristics

# Basic analysis
dotcom analyze example.com google.com

# Comprehensive analysis
dotcom analyze example.com --verbose --check-words --patterns

Dictionary Lookup

# Look up words in the English dictionary
dotcom dict hello world rust programming

# Show detailed information (when API is enabled)
dotcom dict --verbose --use-api hello world

Monitor Domains

# Monitor domains for changes
dotcom monitor example.com google.com --interval 60

Command Reference

dotcom check <DOMAIN>

Check domain availability and information.

Options:

  • -v, --verbose: Show detailed information including expiry date and registrar

dotcom search <KEYWORDS>...

Search for available domains based on keywords.

Options:

  • -t, --tld <TLD>: TLD extensions to search (default: com,net,org)
  • -l, --limit <LIMIT>: Maximum number of results (default: 10)
  • -a, --available-only: Only show available domains

dotcom analyze <DOMAINS>...

Analyze domain characteristics and provide scoring.

Options:

  • -v, --verbose: Show detailed analysis including brandability and memorability scores
  • -w, --check-words: Check if domains are English words using enhanced dictionary
  • -p, --patterns: Analyze domain length and patterns
  • -d, --show-definitions: Show dictionary definitions and details
  • --use-api: Use API for enhanced dictionary lookups (includes definitions)

dotcom dict <WORDS>...

Look up words in the English dictionary.

Options:

  • -v, --verbose: Show detailed information including definitions
  • --use-api: Use API for enhanced dictionary lookups (includes definitions)

dotcom monitor <DOMAINS>...

Monitor domains for changes (planned feature).

Options:

  • -i, --interval <INTERVAL>: Check interval in minutes (default: 60)

Architecture

The dotcom toolkit is built with a modular architecture:

src/
├── main.rs           # Application entry point
├── cli/              # Command-line interface
│   ├── mod.rs        # CLI structure and routing
│   ├── check.rs      # Domain availability checking
│   ├── search.rs     # Domain search functionality
│   ├── analyze.rs    # Domain analysis
│   ├── dict.rs       # Dictionary lookup command
│   └── monitor.rs    # Domain monitoring
├── api/              # API clients for domain services
│   └── mod.rs        # HTTP client and API integrations
├── config/           # Configuration management
│   └── mod.rs        # App configuration and settings
├── dictionary/       # English dictionary service
│   └── mod.rs        # Word validation and lookup
├── domain/           # Domain data structures
│   └── mod.rs        # Domain info, analysis, and suggestions
└── utils/            # Utility modules
    ├── mod.rs        # Utility module exports
    └── analyzer.rs   # Domain analysis logic

Configuration

The toolkit supports configuration through environment variables:

# API Keys for various services
export WHOIS_API_KEY="your-whois-api-key"
export NAMECHEAP_API_KEY="your-namecheap-api-key"

# Default settings
export DOTCOM_DEFAULT_TLDS="com,net,org"
export DOTCOM_RATE_LIMIT="60"

Development

Running Tests

cargo test

Building

# Debug build
cargo build

# Release build
cargo build --release

Adding New API Providers

  1. Add your API client to src/api/mod.rs
  2. Implement the required trait methods
  3. Add configuration options to src/config/mod.rs
  4. Update the CLI commands as needed

Future Enhancements

  • Real API Integration: Connect to actual WHOIS and registrar APIs
  • Database Storage: Store domain information and monitoring history
  • Web Interface: Add a web UI for easier interaction
  • Advanced Analysis: ML-based domain scoring and suggestions
  • Batch Processing: Support for bulk domain operations
  • Export Formats: JSON, CSV, and XML output support
  • Monitoring Alerts: Email/webhook notifications for domain changes

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Examples

Check Multiple Domains

# Check several domains at once
for domain in example.com google.com github.com; do
  dotcom check $domain
done

Find Brandable Domains

# Search for short, brandable domains
dotcom search app web site --limit 20 --available-only

Analyze Domain Portfolio

# Analyze your domain portfolio
dotcom analyze mydomain.com myapp.net mysite.org --verbose --patterns

Built with ❤️ in Rust