3 releases (breaking)
| 0.3.0 | Jul 24, 2025 |
|---|---|
| 0.2.0 | Jul 17, 2025 |
| 0.1.0 | Jul 17, 2025 |
#1866 in Network programming
108 downloads per month
61KB
1K
SLoC
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
- Add your API client to
src/api/mod.rs - Implement the required trait methods
- Add configuration options to
src/config/mod.rs - 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
Dependencies
~14–31MB
~345K SLoC