npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mullvad-servers-ping-tester

v1.0.0

Published

Инструмент для тестирования пинга серверов Mullvad VPN с расширенной аналитикой

Readme

🚀 Mullvad Server Ping Tester

Mullvad VPN

TypeScript Node.js License Code Style Dependency Status PRs Welcome

Mullvad Server Ping Tester — высокопроизводительный инструмент для тестирования пинга серверов Mullvad VPN с расширенной аналитикой и визуализацией данных. Помогает найти оптимальные серверы для вашего подключения.

📋 Содержание

✨ Особенности

  • Высокая производительность: Многопоточное тестирование с оптимизированным использованием ресурсов
  • Расширенная аналитика: Детальная статистика по странам, городам и отдельным серверам
  • Визуализация данных: Интерактивные отчеты с графиками и картами
  • Гибкая фильтрация: Фильтрация серверов по стране, городу и другим параметрам
  • Исторический анализ: Отслеживание изменений производительности серверов со временем
  • Веб-интерфейс: Интерактивный веб-интерфейс для удобного просмотра результатов
  • Множество форматов: Экспорт результатов в JSON, HTML и CSV
  • Современная архитектура: Использование TypeScript, DI, SOLID и других лучших практик

🛠️ Технологии

TypeScript Node.js Express Socket.io Jest ESLint Prettier

  • TypeScript: Строгая типизация и современный синтаксис
  • Node.js: Высокопроизводительная среда выполнения
  • Inversify: Контейнер внедрения зависимостей
  • Zod: Валидация конфигурации и данных
  • Commander: Интерфейс командной строки
  • Express: Веб-сервер для интерактивного режима
  • Socket.io: Обновление данных в реальном времени
  • Jest: Модульное и интеграционное тестирование
  • ESLint & Prettier: Статический анализ и форматирование кода

📦 Установка

Глобальная установка

npm install -g mullvad-servers-ping-results

Локальная установка

# Клонирование репозитория
git clone https://github.com/slpkbt/mullvad-servers-ping-results.git
cd mullvad-servers-ping-results

# Установка зависимостей
npm install

# Сборка проекта
npm run build

🚀 Использование

Командная строка

# Базовое использование
mullvad-ping-tester

# Фильтрация по стране
mullvad-ping-tester --country US,GB,DE

# Фильтрация по городу
mullvad-ping-tester --city "New York,London,Berlin"

# Настройка параметров пинга
mullvad-ping-tester --timeout 2000 --retries 3 --parallel 30

# Выбор форматов вывода
mullvad-ping-tester --format json,html,csv

# Запуск веб-сервера
mullvad-ping-tester --web

# Подробная справка
mullvad-ping-tester --help

Программное использование

import { PingTester } from 'mullvad-servers-ping-results';

async function main() {
  const tester = new PingTester({
    countryFilter: 'US,GB',
    cityFilter: 'New York,London',
    pingTimeout: 2000,
    pingRetries: 3,
    concurrentPings: 30,
  });

  const results = await tester.run();
  console.log(`Протестировано ${results.length} серверов`);
}

main().catch(console.error);

Переменные окружения

Вы также можете настроить приложение с помощью переменных окружения. Создайте файл .env в корне проекта:

# API Settings
API_URL=https://api.mullvad.net/www/relays/wireguard/

# Ping Settings
PING_TIMEOUT=1500
PING_RETRIES=1

# Performance Settings
CONCURRENT_PINGS=30
MAX_THREADS=0

# Filter Settings
COUNTRY_FILTER=US,GB,DE
CITY_FILTER=

# Web Server Settings
WEB_SERVER_ENABLED=false
WEB_SERVER_PORT=3000
WEB_SERVER_HOST=localhost

📊 Примеры вывода

Консольный вывод

╔═══════════════════════════════════════════════════════════════════════════╗
║                     Mullvad Server Ping Results                           ║
╟───────────────────────────────────────────────────────────────────────────╢
║ Total Servers: 505 | Reachable: 487 | Unreachable: 18                     ║
║ Average Ping: 78ms | Min: 12ms | Max: 350ms                               ║
╚═══════════════════════════════════════════════════════════════════════════╝

Top 10 Servers by Ping:
╔════════════════╤═══════════╤═══════════╤═══════════╤═══════════╤═══════════╗
║ Hostname       │ Country   │ City      │ IP        │ Ping      │ Status    ║
╟────────────────┼───────────┼───────────┼───────────┼───────────┼───────────╢
║ se-sto-wg-001  │ Sweden    │ Stockholm │ 1.2.3.4   │ 12ms      │ Good      ║
║ de-fra-wg-003  │ Germany   │ Frankfurt │ 2.3.4.5   │ 15ms      │ Good      ║
║ nl-ams-wg-002  │ Netherlands│ Amsterdam│ 3.4.5.6   │ 18ms      │ Good      ║
╚════════════════╧═══════════╧═══════════╧═══════════╧═══════════╧═══════════╝

Веб-интерфейс

🧪 Тестирование

# Запуск всех тестов
npm test

# Запуск тестов с покрытием
npm run test:coverage

# Запуск тестов в режиме наблюдения
npm run test:watch

🔧 Разработка

# Запуск в режиме разработки
npm run dev

# Линтинг
npm run lint

# Форматирование
npm run format

# Генерация документации
npm run docs

📁 Структура проекта

mullvad-servers-ping-results/
├── src/
│   ├── config/           # Конфигурация приложения
│   ├── interfaces/       # TypeScript интерфейсы
│   ├── services/         # Сервисы приложения
│   │   ├── __tests__/    # Тесты для сервисов
│   ├── utils/            # Утилиты и вспомогательные функции
│   └── index.ts          # Точка входа приложения
├── tests/                # Тесты
├── .eslintrc.js          # Конфигурация ESLint
├── .prettierrc           # Конфигурация Prettier
├── jest.config.js        # Конфигурация Jest
├── tsconfig.json         # Конфигурация TypeScript
├── package.json          # Зависимости и скрипты
└── README.md             # Документация проекта

🤝 Вклад в проект

Мы приветствуем вклад в развитие проекта! Если вы хотите внести свой вклад, пожалуйста, ознакомьтесь с руководством по внесению вклада.

  1. Форкните репозиторий
  2. Создайте ветку для вашей функции (git checkout -b feature/amazing-feature)
  3. Зафиксируйте ваши изменения (git commit -m 'feat: add amazing feature')
  4. Отправьте изменения в ваш форк (git push origin feature/amazing-feature)
  5. Откройте Pull Request

📝 Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для получения дополнительной информации.


Сделано с ❤️ для сообщества Mullvad VPN

Сообщить о проблеме · Запросить функцию · Документация