Skip to content

code3-dev/DNS-XS

Repository files navigation

DNS XS

DNS XS Logo

GitHub release GitHub issues GitHub

Total Downloads Language UI Framework

DNS XS is a modern Android application that allows you to test and compare the performance of various DNS servers. Find the fastest and most reliable DNS servers for your internet connection with ease.

🌟 Features

  • Extensive DNS Database: Over 35+ popular DNS servers including Cloudflare, Google, OpenDNS, and more
  • Performance Testing: Measure response times for each DNS server
  • DNS over HTTPS (DoH): Support for secure DNS queries
  • Real-time Sorting: Automatically sorts DNS servers by performance after testing
  • Detailed Information: View comprehensive details for each DNS provider
  • One-tap Copy: Easily copy DNS addresses to clipboard
  • Modern UI: Clean and intuitive Material Design 3 interface
  • Offline Support: Works without internet connection using cached data

🚀 Getting Started

Prerequisites

  • Android 7.0 (API level 24) or higher
  • Internet connection for initial data loading and testing

Installation

  1. Download the latest APK from Releases
  2. Enable "Install from unknown sources" in your device settings
  3. Install the APK file
  4. Launch the app and start testing DNS servers

🛠️ Technologies Used

  • Kotlin: Primary programming language
  • Jetpack Compose: Modern UI toolkit
  • Material Design 3: Latest design system from Google
  • MVVM Architecture: Clean separation of concerns
  • Kotlin Coroutines: Asynchronous programming
  • Kotlin Serialization: JSON parsing
  • Android Architecture Components: ViewModel, LiveData

📊 How It Works

  1. Data Loading: The app loads DNS server information from a remote JSON file
  2. Performance Testing: Each DNS server is tested by establishing a connection to port 53
  3. Response Measurement: Response times are measured in milliseconds
  4. Automatic Sorting: Servers are automatically sorted by performance (fastest first)
  5. Result Display: Results are color-coded for easy interpretation

🎯 Performance Indicators

  • 🟢 < 50ms: Excellent performance
  • 🟡 50-80ms: Good performance
  • > 80ms: Acceptable performance
  • 🔴 Failed: Connection could not be established

📸 Screenshots

Main Screen Test Screen DNS Details Screen

🤝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch:
    git checkout -b feature/YourFeature
  3. Commit your changes:
    git commit -m "Add your feature"
  4. Push to the branch:
    git push origin feature/YourFeature
  5. Open a pull request

Ways to Contribute

  • Add new DNS servers to the database
  • Improve UI/UX design
  • Optimize performance testing algorithms
  • Fix bugs and issues
  • Translate the app to new languages

🐛 Reporting Issues

If you encounter any bugs or have feature requests, please open an issue on GitHub. Include as much detail as possible to help us understand and resolve the problem quickly.

📄 License

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

🙏 Acknowledgments

  • Thanks to all the DNS providers that offer free public DNS services
  • Inspired by various network diagnostic tools
  • Built with ❤️ using Kotlin and Jetpack Compose

Made with ❤️ by Hossein Pira

About

Test and compare the performance of various DNS servers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages