CloudPub: Как мы переписали Ngrok на Rust, с GUI и плагинами

Привет, друзья! Сегодня хочу рассказать о нашем проекте CloudPub, над которым мы работали последний год.

Всё началось с простой идеи — создать удобный инструмент для публикации локальных ресурсов в интернете. Как разработчик, я часто сталкивался с необходимостью показать заказчику локальный сайт, отладить webhook или дать доступ к файлам на моей машине.

Существующие решения вроде ушедшего из России ngrok.com или отечественного tuna.am решали эту задачу, но мне всегда не хватало удобного интерфейса и широкой поддержки различных протоколов.

Что нас отличает от конкурентов

Главное отличие CloudPub — это полноценное приложение с графическим интерфейсом. Мы решили, что не все разработчики любят возиться с командной строкой, поэтому создали интуитивно понятное приложение, где все функции доступны в пару кликов.

При этом мы не забыли и про консольную версию для тех, кто предпочитает классический подход.

Обе версии обладают одинаковым функционалом и работают на всех популярных платформах: Windows, macOS, Linux, Docker.

Есть версия для "интернета вещей" - armv5/aarch64 архитектур .

В процессе тестирования нам удалось запустить клиент на рутованой камере наблюдения от Ростелекома, Raspberry Pi и устройстве под управлением Android.

Модульная архитектура

Мы изначально проектировали CloudPub как модульную систему с поддержкой плагинов. Это позволило нам быстро добавлять поддержку новых протоколов:

- HTTP/HTTPS для веб-приложений

- TCP/UDP для сетевых сервисов

- WebDAV для файловых систем

- 1C для публикации конфигураций "1C предприятие"

- RTSP для видеопотоков

- Minecraft для игровых серверов

Установить и опубликовать minecraft или WebDAV сервер теперь можно буквально одним кликом.

И это только начало! Благодаря модульной архитектуре мы можем оперативно добавлять новые протоколы по запросам пользователей.

Инспектор трафика и другие возможности

Важная часть нашего продукта — встроенный инспектор трафика. Он позволяет в реальном времени анализировать и выгружать HTTP-запросы в удобном формате (JSON, XML, Binary/HEX, Image и др), в том числе с поддержкой сжатия (Content-Encoding).

Мы также реализовали гибкую систему аутентификации и авторизации, позволяющую настраивать права для разных пользователей, возможность установки CloudPub как системный сервис, встроенный менеджер файлов и многое другое.

Клиент и сервер написаны на языке Rust что обеспечивает безопасность и быстродействие.

Исходники клиента опубликованы на GitHub

Планы на будущее

Мы только в начале пути. В ближайших планах:

- Расширение списка поддерживаемых протоколов

- Улучшение производительности

- Добавление новых инструментов для анализа и отладки

- OpenSource Community версия сервера

Приглашаю всех попробовать CloudPub — скачать можно на нашем сайте https://cloudpub.ru. Буду рад услышать ваши отзывы и предложения!

12